我有一些包含一些行的文字。每一行都有一个词。我应该复制文本,然后将其粘贴到Eclipse Console Output窗口,最后将每一行存储在一个数组中。
我不知道每个文本有多少行。我怎么能这样做?
我知道如果我想将一些字符串存储到数组中我应该像下面那样存在,但我不想通过这种方法来做:
String[] Lines = {"line1", "line2", ....};
答案 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);