String.split принимает regex, а не разделитель Точка в регулярном выражении означает любой символ. Для буквальной точки нужны два уровня экранирования:
String[] parts = "app.log".split("\\.");
// [app, log]
Если разделитель приходит из переменной, используйте Pattern.quote:
String[] parts = line.split(Pattern.quote(separator), -1);
Отрицательный limit сохраняет пустые поля справа: у "a,b," их три, последнее — пустая строка. Без limit завершающие пустые элементы удаляются. Такой split подходит для простого текстового формата. Полноценный CSV с кавычками и запятыми внутри значений требует парсера CSV. #Java
Java Библиотека | Мы в Телеграм
String[] parts = "app.log".split("\\.");
// [app, log]
Если разделитель приходит из переменной, используйте Pattern.quote:
String[] parts = line.split(Pattern.quote(separator), -1);
Отрицательный limit сохраняет пустые поля справа: у "a,b," их три, последнее — пустая строка. Без limit завершающие пустые элементы удаляются. Такой split подходит для простого текстового формата. Полноценный CSV с кавычками и запятыми внутри значений требует парсера CSV. #Java
Java Библиотека | Мы в Телеграм
Просмотры: 185