Я получил тысячи предложений в txt файле, и мое первое приложение для Android должно взять один оттуда и поместить его в textView.
Я мог бы поместить файл txt в качестве ресурса, а также попытаться получить все предложения и преобразовать их в массив. Я не хочу вставлять txt в приложение, но непосредственно массив с предложениями. Как я могу автоматически "перевести" тысячи предложений в массивный список?
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
Не изобретайте велосипед... это однострочный:
import org.apache.commons.io.IOUtils;
List<String> sentences = (List<String>)IOUtils.readLines(new FileInputStream("filename.txt"));
Похоже, вы хотите поместить текстовый файл в свою папку ресурсов, а затем прочитать его с помощью BufferedReader.
В зависимости от содержимого вашего текстового файла вы можете читать текст за строкой и добавлять его в массив по ходу дела, или просто прочитать весь файл в виде строки и использовать.split(), которая вернет массив строк для вас.
Если вы знаете, что у каждого элемента есть только один период, вы разделите его. Если вы не можете этого сделать, но можете использовать новые строки, используйте это.
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."]
static final String
переменную или что-то в этом роде и просто использовать это?