Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中正确分割一行_Java_String_Split - Fatal编程技术网

如何在java中正确分割一行

如何在java中正确分割一行,java,string,split,Java,String,Split,我有点困惑 public static void main(String [] args){ String s = "a,b,c,d,"; System.out.println(s.split(",").length); } 我希望看到5作为输出。。但是输出是4? 为什么它会忽略最后一个“null”字段 如果我试图解析有(比如)5列的数据,我该如何处理这种情况 cases: a,b,c,d,e a,,c,d,e //this case is fine

我有点困惑

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

        System.out.println(s.split(",").length);
    }
我希望看到5作为输出。。但是输出是4? 为什么它会忽略最后一个“null”字段

如果我试图解析有(比如)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
方法忽略任何尾随的空字符串。因此,它们不是数组的一部分。如果希望它们成为数组的一部分,请使用重载方法,该方法将限制作为第二个参数。如果为限制传递负值,则不会忽略尾随的空字符串

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

而且,空字符串不是
null

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

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

而且,空字符串不是
null

null
字符串不同于空(“”)字符串。
null
字符串不同于空(“”)字符串。而且,空字符串也不是
null
。感谢您添加此项。此外,空字符串不是
null
。谢谢你添加这个。