Java 字符串'中可能存在错误;s分裂法

Java 字符串'中可能存在错误;s分裂法,java,split,Java,Split,我有下一个代码: String test = "A,B,,,,,"; String[] result = test.split(","); for(String s : result){ System.out.println("$"+s+"$"); } 输出为: $A$ B美元$ 我希望: $A$ $B$ $$ $$ $$ $$ $$ 但是,我修改了代码如下: String test = "A,B,,,,,C"; String[] result = test.split(",")

我有下一个代码:

String test = "A,B,,,,,";

String[] result = test.split(",");

for(String s : result){
    System.out.println("$"+s+"$");
}
输出为:

$A$
B美元$

我希望:

$A$
$B$
$$
$$
$$
$$
$$

但是,我修改了代码如下:

String test = "A,B,,,,,C";

String[] result = test.split(",");

for(String s : result){
    System.out.println("$"+s+"$");
}
结果是:

$A$
$B$
$$
$$
$$
$$
$C$

其他变化:

String test = "A,B,,,C,,";

String[] result = test.split(",");

for(String s : result){
    System.out.println("$"+s+"$");
}
结果是:

$A$
$B$
$$
$$
$C$

有什么想法吗

我需要将csv文件转换为java对象,但当他们没有向我发送最后一列时,代码无法正常工作:

该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法因此,结果数组中不包括尾随的空字符串。


我现在就做了这个代码,它对我来说很好,试试这个:

String test = "A,B,,,,,";
    int i;
    int countOfCommas = 0;
    int countOfLetters = 0;
    String[] testArray = test.split("");
    String[] result = test.split(",");

    for(i=0;i<=test.length();i++)
        if(testArray[i].equals(","))
            countOfCommas++;

    for(String s : result){
        System.out.println("$"+s+"$");
    }

    if(test.length() > result.length)
        countOfLetters = test.length()-countOfCommas;

    for(i=0;i<(test.length()-countOfLetters)-result.length;i++)
        System.out.println("$$");
String test=“A,B,,,,,,”;
int i;
int countOfCommas=0;
int countOfLetters=0;
字符串[]testArray=test.split(“”);
字符串[]结果=test.split(“,”);
对于(i=0;i结果.length)
countOfLetters=test.length()-countOfCommas;

对于(i=0;i,正如Jeroen Vannevel所述,这是
String.split()
的记录行为。如果需要kepp所有空字符串,只需使用
test.split(“,”,-1)
,多亏了@ZouZou,我有了解决方案,接下来是:

String test = "A,B,,,C,,";

String[] result = test.split(",",test.length()); // or the number of elements you expect in the result

for(String s : result){
    System.out.println("$"+s+"$");
}

天哪,你发现了一个wierd错误:你可以试试
String[]result=test.split(“,”,test.length());
,你会看到你得到了预期的结果。是的!!!!你完全正确!是的,但是,如果不包括空字符串,那么输入字符串test=“a,B,,,C,,”的结果应该是{a,B,C}?@victorpacheco3107否。请仔细阅读文档,上面写着“尾随空字符串”。而不是“任何地方的空字符串”。