当前位置:  开发笔记 > 编程语言 > 正文

Java split()方法最后会删除空字符串?

如何解决《Javasplit()方法最后会删除空字符串?》经验,为你挑选了2个好方法。

看看下面的程序.

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 ?



1> Fabian Steeg..:

您可以指定尽可能多地应用模式:

String[] de = data.split(";", -1);

有关详细信息,请参阅Javadoc中的split方法,其中包含两个参数.


所以将答案标记为已接受.

2> Johannes Wei..:

看看文档,这里重要的引用:

[...] 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它调用时不会丢弃任何东西.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有