看看下面的程序。
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;
输出:
长度= 4
长度= 2
长度= 3
为什么第二个和第三个输出是2和3而不是4.。在sample.txt
文件中,第二和第三行的条件是给\n
第三个字段的分隔符后立即给换行符(或输入)。我该如何获得第二和第三行的长度为4,而不改变sample.txt
文件的条件以及如何输出de[2]
(抛出 ArrayIndexOutOfBoundsException
)的值?
发布于 2018-01-26 10:01:33
你可以指定尽可能频繁地应用该模式:
String[] de = data.split(";", -1);
发布于 2018-01-26 11:31:32
看看文档:
[...] the array can have any length, and trailing empty strings will be discarded.
当调用时String.split(String)
,它会调用String.split(String, 0)
并丢弃尾随的空字符串(如文档所说),String.split(String, n)
用n < 0
它调用时不会丢弃任何东西。
https://stackoverflow.com/questions/-100007241
复制相似问题