Есть строка 1,2,3,"4, A",B, 5,C,6,7,8. Подскажите пожалуйста, как ее разбить на подстроки по запятой но пропустив запятую + пробел? Ниже код который работает, может есть более простой вариант?
String s = "1,2,3,\"4, A\",B, 5,C,6,7,8";
String[] ss;
s = s.replaceAll(", ", "#%&"); // меняем "запятая + пробел" на любой символ
ss = s.split(",");
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i].replaceAll("#%&", ", ")); // возвращаем запятую с пробелом обратно
}
Т.к. split
принимает регулярное выражение, то можно использовать просмотр вперед с отрицанием:
String[] ss = s.split(",(?!\\s)");
Выражение ,(?!\s)
означает: «запятая, если за ней не следует пробельный символ». Пробельный символ может быть любой, если нужно игнорировать именно пробел, то укажите его явно:
String[] ss = s.split(",(?! )");
String s = "1,2,3,\"4, A\",B, 5,C,6,7,8";
StringTokenizer st = new StringTokenizer(s, ",");
while(st.hasMoreTokens()){
String nextToken = st.nextToken();
if (!nextToken.equals(nextToken.trim())) System.out.print(",");
else System.out.println("");
System.out.print(nextToken);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Никак не могу связать приложение с Msql server 2014Вопроc: связать можно любой выпуск MSQL или только Express ?
Просмотрев документацию и исходный код класса FilterInputStream, а также код его наследников, возник вопрос: зачем вообще нужен этот класс?
Доброго времени суток, необходимо на круглом progress bar отображать рейтинг заведенияТ