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否。请仔细阅读文档,上面写着“尾随空字符串”。而不是“任何地方的空字符串”。