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

Другие вопросы по тегам