Почему "" в 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() будет пересылать один символ, прежде чем снова начать поиск.