为什么一个数组的第0个索引中的“”在perfoaming()w / o分隔符上?

public static void main(String[] args) { // TODO Auto-generated method stub String str="aaabbddaabbcc"; String[] str2=str.split(""); String pointer=str2[0]; int count=0; String finalStr=""; for(String str132:str2) { if(str132.equalsIgnoreCase(pointer)) { ++count; } else { finalStr+=str132+count; count=0; pointer=str132; ++count; } } System.out.println(finalStr); } 

在执行str.split("") ,为什么我在str2数组的第0个索引中得到一个""

为什么我在str2数组的第0个索引中得到一个“”?

因为你使用的分隔符在这里匹配:

  aaaabbddaabbcc ^ 

由于.split()收集的部分在进入字符串时已“走过”,因此它收集空字符串。

另请注意,由于分隔符为空,为了避免无限循环,在下一次迭代中, .split()将在开始再次搜索之前转发一个字符。