Строка, разделение. нуждаюсь в помощи понимая

Случай 1

String a = "         ";
String[] b = a.split(",");
System.out.println(b.length);

Печать 1. Почему?

Случай 2

String a = ",,,,,,,,,,,,";
String[] b = a.split(",");
System.out.println(b.length);

Печать 0. Почему?

Честно, я в замешательстве здесь

5
задан James Raitsev 13 July 2010 в 22:51
поделиться

3 ответа

Это поведение упоминается в документации для String.split :

Этот метод работает так, как если бы он вызывал метод разделения с двумя аргументами с заданным выражением и нулевым предельным аргументом. Таким образом, завершающие пустые строки не включаются в результирующий массив .

Ваш первый пример должен дать массив, содержащий единственную строку, содержащую пробелы. Строка, содержащая пробелы, не является пустой, поэтому она включается в результат.

Ваш второй пример даст массив, содержащий множество пустых строк, но они не включены в результирующий массив, как указано в документации.

Что касается того, почему разработчики Java решили, что удаление завершающих пустых строк, когда limit равен нулю, это хорошая идея - я не знаю. Большинство других языков / платформ программирования этого не делают.Я считаю, что это "ошибка" - функция, которая работает не совсем так, как ожидает большинство людей.

12
ответ дан 18 December 2019 в 14:41
поделиться

В SQL Server 2005 имя моей базы данных:a имя таблицы:a имя столбца:a(varchar(max)),b(int) значения

a b

hello|howdoudo|imfine|thanks 1
h|ho|ine|ths 2 helddlo|howdddoudo|imfiddne|tdhs 3

подскажите, какая хранимая процедура split для получения таблицы выглядит следующим образом, т.е. когда b=1 b=2 b=3

вывести вывести вывести вывести вывести a a a здравствуйте h holddlo howdoudo ho howdddoudo
имфайн инэ имфидднэ спасибо tdhs

0
ответ дан 18 December 2019 в 14:41
поделиться

В примере 1 есть один элемент в массиве b " " - ваши пробелы

В примере 2 пустые записи удаляются

1
ответ дан 18 December 2019 в 14:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: