String abc = "a,b,c,d,,,";
String[] arr = abc.split(",");
System.out.println(arr.length);
输出结果为4。但是我的期望值是7。以下是我的解决方案:
String abc = "a,b,c,d,,,";
abc += "\n";
String[] arr = abc.split(",");
System.out.println(arr.length);
为什么会发生这种情况?有没有更好的解决方案?
String abc = "a,b,c,d,,,";
String[] arr = abc.split(",");
System.out.println(arr.length);
输出结果为4。但是我的期望值是7。以下是我的解决方案:
String abc = "a,b,c,d,,,";
abc += "\n";
String[] arr = abc.split(",");
System.out.println(arr.length);
String abc = "a,b,c,d,,,";
String[] arr = abc.split(",", -1);
System.out.println(arr.length);
这会打印出
7
split()
而不是正则表达式,加一分。 - Azar您可以使用前瞻:
String abc = "a,b,c,d,,,";
String[] arr = abc.split("(?=,)");
System.out.println(arr.length); //7
split
函数。 - anubhava使用:
String[] arr = abc.split("(?=,)");
分割abc
\n
,则最后一个元素不为空。[a, b, c, d, , , \n]
split()函数专门用于这个任务。您可以通过以下方式计算字符或字符串的出现次数。
String ch = ",";
int count = 0;
int pos = 0;
int idx;
while ((idx = abc.indexOf(ch, pos)) != -1) {
++count;
pos = idx + sub.length();
}
System.out.println(count);
这个逻辑在Spring中被使用。