Почему "" в 0-м индексе массива при выполнении разделения () без разделителей?
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("")
почему я получаю ""
в 0-м индексе str2
массив?
1 ответ
Решение
почему я получаю "" в 0-м индексе массива str2?
Потому что используемый вами разделитель соответствует здесь:
aaaabbddaabbcc
^
поскольку .split()
собирает части, которые он прошел, когда он переходит в строку, здесь он собирает пустую строку.
Отметим также, что, поскольку разделитель пуст, чтобы избежать бесконечных циклов, на следующей итерации .split()
будет пересылать один символ, прежде чем начать поиск снова.