У меня есть строка вот так: 1 | "значение" |;
Я хочу разделить эту строку и выбрал |
в качестве разделителя.
Мой код выглядит так:
String[] separated = line.split("|");
Я получаю массив, содержащий все символы в виде одной записи:
separated[0] = ""
separated[1] = "1"
separated[2] = "|"
separated[3] = """
separated[4] = "v"
separated[5] = "a"
...
Кто-нибудь знает почему?
Не могу ли я разделить строку с помощью |
?
Это - общий метод, который можно использовать с этой целью. Это обработает любой разделитель.
Pattern.quote делает волшебство.
import org.apache.commons.lang3.StringUtils;
public static String[] split(String strToSplit, String delimiter) {
if (StringUtils.isBlank(strToSplit)) {
return new String[] {};
} else if (StringUtils.isBlank(delimiter)) {
return new String[] { strToSplit };
}
return strToSplit.split(Pattern.quote(delimiter));
}
В Вашем примере:
String[] separated = split(line, "|");