Процесс превращения огромного текста в массив в Java

1

Я получил тысячи предложений в txt файле, и мое первое приложение для Android должно взять один оттуда и поместить его в textView.

Я мог бы поместить файл txt в качестве ресурса, а также попытаться получить все предложения и преобразовать их в массив. Я не хочу вставлять txt в приложение, но непосредственно массив с предложениями. Как я могу автоматически "перевести" тысячи предложений в массивный список?

  • 0
    Будет ли текст когда-либо меняться или он будет статичным? Если он статический (и вы не хотите использовать ресурсы), почему бы не сохранить его как static final String переменную или что-то в этом роде и просто использовать это?
  • 0
    Предложения не изменятся. Это просто показывает их как «цитата». Я хотел бы знать, если есть способ перевести все из них в массив. Я имею в виду, что я не могу переписывать каждую кавычку в виде массива, постоянно вставляя "" ...
Теги:
arrays

4 ответа

0
Лучший ответ
i guess this is what u dont want to do...
//InputStream is = getResources().openRawResource(R.raw.list);

поэтому получите объект InputStream и используйте следующий код.

List<String> content=new ArrayList<String>();
InputStreamReader isr = new InputStreamReader(is);
linereader = new LineNumberReader(isr);
for (int i = 0; i < num; i++) {  // num is  total no of lines in file
    try {
            line = linereader.readLine();
            content.add(line);

         } 
         catch (IOException e) 
         {
        e.printStackTrace();
          }
     }// for ends
1

Не изобретайте велосипед... это однострочный:

import org.apache.commons.io.IOUtils;

List<String> sentences = (List<String>)IOUtils.readLines(new FileInputStream("filename.txt"));
0

Похоже, вы хотите поместить текстовый файл в свою папку ресурсов, а затем прочитать его с помощью BufferedReader.

В зависимости от содержимого вашего текстового файла вы можете читать текст за строкой и добавлять его в массив по ходу дела, или просто прочитать весь файл в виде строки и использовать.split(), которая вернет массив строк для вас.

0

Если вы знаете, что у каждого элемента есть только один период, вы разделите его. Если вы не можете этого сделать, но можете использовать новые строки, используйте это.

final String blob = "Quote 1. Quote2. Quote '3'.";
String[] quotes = blob.split('\\.');
> ["Quote 1", "Quote2", "Quote '3'"];

OR


final String blob = "Quote 1.\nQuote 2 longer.";
String[] quotes = blob.split("\n");
> ["Quote 1.", "Quote 2 longer."]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню