查看以下程序。
try {
for (String data : Files.readAllLines(Paths.get("D:/sample.txt"))){
String[] de = data.split(";");
System.out.println("Length = " + de.length);
}
} catch (IOException e) {
e.printStackTrace();
}
Sample.txt的:
1;2;3;4 A;B;; a;b;c;
输出:
Length = 4 Length = 2 Length = 3
为什么第二个和第三个输出给出2和3而不是4.在sample.txt
文件中,第2行和第3行的条件应该在给出分隔符后立即给出换行符(\n
或输入)第三场。任何人都可以帮助我如何在不更改sample.txt
文件的条件以及如何打印de[2]
(抛出ArrayIndexOutOfBoundsException
)的值的情况下,将第二行和第三行的长度设置为4?
答案 0 :(得分:276)
答案 1 :(得分:23)
查看docs,这里有重要的引用:
[...] the array can have any length, and trailing empty strings will be discarded.
如果您不喜欢,请查看Fabian的评论。在调用String.split(String)
时,它会调用String.split(String, 0)
并丢弃尾随空字符串(正如文档所说),当使用String.split(String, n)
调用n < 0
时,它不会丢弃任何内容。< / p>