Например, выполните: «2|33|4».split(»|»)
Результат:
""
2
3
3
4
Странно, но если внимательно прочитать описание API, то все равно можно понять причину.
java.lang.string.split
метод разделения
Разбивает строку на подстроки и возвращает результат в виде массива строк.
stringObj.split([разделитель, [ограничение]])
параметр
строкаObj
Необходимый. Объект String или литерал, подлежащий декомпозиции. Этот объект не будет изменен методом разделения.
сепаратор
Необязательный. Объект строки или регулярного выражения, который определяет, используются ли для разделения строки один или несколько символов. Если этот параметр опущен, возвращается одноэлементный массив, содержащий всю строку.
предел
Необязательный. Это значение используется для ограничения количества элементов в возвращаемом массиве.
иллюстрировать
Результатом метода разделения является массив строк, который необходимо разложить в каждой позиции, где в stingObj появляется разделитель.
Итак, нормальный способ написать это так:
1. Если в качестве разделения используется ".", его необходимо записать следующим образом: String.split("//."), чтобы его можно было правильно разделить.
2. Если в качестве разделителя используется "|", его необходимо записать следующим образом: String.split("//|"), чтобы его нельзя было правильно разделить.
"." и "|" являются escape-символами, и необходимо добавить "//";
3. Если в строке несколько разделителей, вы можете использовать «|» в качестве дефиса, например: «a=1 и b =2 или c=3». Чтобы разделить все три, вы можете использовать функцию Split(. «и|или»);