在java中将文本行存储在数组中

时间:2014-05-14 17:41:37

标签: java arrays

我有一些包含一些行的文字。每一行都有一个词。我应该复制文本,然后将其粘贴到Eclipse Console Output窗口,最后将每一行存储在一个数组中。

我不知道每个文本有多少行。我怎么能这样做?

我知道如果我想将一些字符串存储到数组中我应该像下面那样存在,但我不想通过这种方法来做:

String[] Lines = {"line1", "line2", ....};

3 个答案:

答案 0 :(得分:2)

如果您不知道有多少行,可以使用通用列表。

List<String> lines = new ArrayList<String>();

这会在您向其添加值时动态调整大小。

您也可以使用数组并自己调整大小,这就是ArrayList在幕后所做的事情,只是它增加了代码的复杂性。

答案 1 :(得分:1)

初始化后,无法更改数组大小。如果您更改以前的数据将丢失。您可以使用ArrayList动态添加项目。例如;

    ArrayList<String> list = new ArrayList<>();
    //read your file here and print it. After that;
    list.add(line); // I assumed you get lines to a variable called line

答案 2 :(得分:0)

如果您使用的是JDk 7+,可以通过

轻松完成
List<String> list = Files.readAllLines(new File("test.txt").toPath());

但是如果你仍然想使用列表转换为数组转换为

List<String> list = Files.readAllLines(new File("test.txt").toPath());
String[] str = list.toArray(new String[list.size()]);

或者,如果您没有文件并将文件复制粘贴到控制台,请尝试使用

List<String> lines = new ArrayList<String>();
Scanner s = new Scanner(System.in);
while(s.hasNextLine()){
    String line = s.nextLine();
    if(line.length() > 0) {
        lines.add(s.nextLine());
    } else {
        break;
    }
}
System.out.println(lines);