繁体   English   中英

如何在Java中正确分割一行

[英]How to properly split a line in java

我有点困惑

 public static void main(String [] args){
        String s = "a,b,c,d,";

        System.out.println(s.split(",").length);
    }

我期望看到5作为输出..但是输出是4? 为什么忽略最后一个“空”字段

如果我尝试解析具有(例如)5列的数据,该如何处理这种情况。

cases:
a,b,c,d,e
a,,c,d,e //this case is fine as this still has 5 fields.. one of the field is missing.. but thats ok
a,b,c,d //simple length check with header catches this error
a,b,c,d,e,f //simple length check
a,b,c,d,e,// looks like there are 6 fields.. but unable to catch such error by length check

String#split()方法将忽略任何结尾的空字符串。 因此,它们不是数组的一部分。 如果希望它们成为数组的一部分,请使用重载split(String, int)方法,该方法将限制作为第二个参数。 如果为限制传递负值,则尾随的空字符串将不会被忽略。

System.out.println(s.split(",", -1).length);

而且,空字符串也不为null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM