用Java将一个巨大的txt文件生成数组的过程

用Java将一个巨大的txt文件生成数组的过程,java,android,arrays,Java,Android,Arrays,我在一个txt文件中获得了数千个句子,我的第一个Android应用程序应该从那里获得一个句子,并将其放在文本视图中 我可以将txt文件作为资源,或者尝试获取所有句子并将其转换为数组。我不想把我的txt文件放到应用程序中,而是直接用句子数组。我怎样才能自动地将数千个句子“翻译”成一个类似数组的列表呢?如果你知道每个项目只有一个句点,那么你就在这个句点上拆分。如果你不能做到这一点,但可以使用换行符,使用它 final String blob = "Quote 1. Quote2. Quote '3'

我在一个txt文件中获得了数千个句子,我的第一个Android应用程序应该从那里获得一个句子,并将其放在文本视图中


我可以将txt文件作为资源,或者尝试获取所有句子并将其转换为数组。我不想把我的txt文件放到应用程序中,而是直接用句子数组。我怎样才能自动地将数千个句子“翻译”成一个类似数组的列表呢?

如果你知道每个项目只有一个句点,那么你就在这个句点上拆分。如果你不能做到这一点,但可以使用换行符,使用它

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."]

如果您知道每个项目只有一个周期,那么您可以在该周期上拆分。如果你不能做到这一点,但可以使用换行符,使用它

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."]

听起来您想将文本文件放在资源文件夹中,然后使用BufferedReader读取它


根据文本文件的内容,您可以逐行读取文本并将其添加到数组中,也可以将整个文件作为字符串读取并使用.split(),这将返回一个字符串数组供您使用。

听起来您想将文本文件放在资源文件夹中,然后使用BufferedReader读取它


根据文本文件的内容,您可以逐行读取文本并将其添加到数组中,或者您可以将整个文件作为字符串读取并使用.split(),它将返回一个字符串数组供您使用。

不要重新发明轮子。。。这是一条单行线:

import org.apache.commons.io.IOUtils;

List<String> sentences = (List<String>)IOUtils.readLines(new FileInputStream("filename.txt"));
import org.apache.commons.io.IOUtils;
列表句子=(List)IOUtils.readLines(新文件输入流(“filename.txt”);

不要重新发明轮子。。。这是一条单行线:

import org.apache.commons.io.IOUtils;

List<String> sentences = (List<String>)IOUtils.readLines(new FileInputStream("filename.txt"));
import org.apache.commons.io.IOUtils;
列表句子=(List)IOUtils.readLines(新文件输入流(“filename.txt”);
因此,获取一个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
List content=new ArrayList();
InputStreamReader isr=新的InputStreamReader(is);
linereader=新的行号阅读器(isr);
对于(inti=0;i
因此,获取一个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
List content=new ArrayList();
InputStreamReader isr=新的InputStreamReader(is);
linereader=新的行号阅读器(isr);
对于(inti=0;i
文本会发生变化,还是会是静态的?如果它是静态的(并且您不想使用资源),为什么不将它存储为
静态最终字符串
变量或其他什么,然后使用它呢?句子不会改变。它只是将它们显示为“引用”。我想知道是否有办法将它们全部转换为数组。我的意思是,我无法将每个引号重新键入为一个数组,一直放“”,文本是否会改变,还是会是静态的?如果它是静态的(并且您不想使用资源),为什么不将它存储为
静态最终字符串
变量或其他什么,然后使用它呢?句子不会改变。它只是将它们显示为“引用”。我想知道是否有办法将它们全部转换为数组。我的意思是,我不能将每个引号都重新键入为一个数组,一直将“”放在。。。