Привет Я новичок в Java и пытаюсь использовать split method, предоставляемый java.Разбиение строки в java дает разные результаты, чем ожидалось
вход является строка в следующем формате
broadcast message "Shubham Agiwal"
желательно требование выход, чтобы получить массив со следующими элементами
["broadcast","message","Shubham Agiwal"]
Мой код является, как следует
String str="broadcast message \"Shubham Agiwal\"";
for(int i=0;i<str.split(" ").length;i++){
System.out.println(str.split(" ")[i]);
}
выход я получил из приведенного выше кода
["broadcast","message","\"Shubham","Agiwal\""]
Может кто-нибудь дайте мне то, что мне нужно изменить в своем коде, чтобы получить желаемый результат, как уже упоминалось выше?
[Split строку на пробелы в Java, за исключением случаев, между кавычками] (http://stackoverflow.com/questions/7804335/split-string-on -spaces-in-java-except-if-between-quotes-ie-treat-hello-wor), [токенизация строки, но игнорирование разделителей внутри кавычек] (http://stackoverflow.com/questions/3366281/tokenizing-a -string-but-ignoring-delimiters-in-quotes), [Regex для разделения строки с использованием пробела, когда она не окружена одинарными или двойными кавычками] (http://stackoverflow.com/questions/366202/regex-for-splitting- a-string-using-space-when-not-around-by-single-or-double) – Tushar
Двойной раскол выглядит изворотливым. –
Вы вводите код 'split' 9 раз, каждый раз получая одинаковый результат. Хотя код не делает то, что вы хотите, в следующий раз, когда вы захотите написать что-то вроде этого, он будет более читабельным и быстрее сохранить результат в массиве первым, перед циклом. – ajb