триггер уровня ворот T в VHDL

split(delimiter) по умолчанию удаляет завершающие пустые строки из массива результатов. Чтобы отключить этот механизм, нам нужно использовать перегруженную версию split(delimiter, limit) с limit, установленную на отрицательное значение, например

String[] split = data.split("\\|", -1);

. Немного больше деталей: split(regex) внутренне возвращает результат split(regex, 0) и в документации этого метода вы можете найти (выделение мое)

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

Если предел n равен больше нуля , тогда шаблон будет применен не более n - 1 раз, длина массива будет не больше n, а массив последняя запись будет содержать все входные данные за пределами последнего сопоставленного разделителя.

Если n не является положительным, шаблон будет применяться как можно больше раз, и массив может иметь любую длину.

Если n равно нулю, шаблон будет применяться столько раз, сколько возможно, массив может иметь любую длину, а конечные пустые строки будут отброшены.

Исключение:

Стоит отметить, что удаление пустой пустой строки имеет смысл только в том случае, если такая пустая строка создана с помощью механизма split . Поэтому для "".split(anything), так как мы не можем расколоть "", мы получим массив результатов [""]. Это происходит потому, что split не произошло здесь, поэтому "", несмотря на то, что он пуст, а trailing представляет оригинальную строку, а не пустую строку, которая была создана процессом разбиения.

0
задан Mahdi 8 March 2019 в 14:43
поделиться