看看下面的程序.
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
文件中,第二行和第三行的条件应该\n
在给第三个字段的分隔符后立即给出换行符(或输入).任何人都可以帮助我如何在不更改sample.txt
文件条件和如何打印de[2]
(抛出 ArrayIndexOutOfBoundsException
)值的情况下将长度设置为第2行和第3行4 ?
您可以指定尽可能多地应用模式:
String[] de = data.split(";", -1);
有关详细信息,请参阅Javadoc中的split方法,其中包含两个参数.
看看文档,这里重要的引用:
[...] 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
它调用时不会丢弃任何东西.