Каков наилучший способ разбора строк, как показано ниже, в Java в данный пользовательский объект
"Adam Xin" "Canada/British Columbia/Vancouver" 2.110
public class User {
private String firstName;
private String lastName;
private String country;
private String province;
private String city;
private Double rValue;
}




Если вы можете добавить методы в класс User, добавьте статический метод разбирать, как показано ниже.
общедоступный статический анализ пользователя (текст строки) {
//Parsing Logic
}
Если Пользователь является библиотечным классом и вы не можете его изменить, вы можете создать служебный класс и добавить в него вышеуказанный метод.
Ниже представлена реализация метода синтаксического анализа.
public static User parse(String text) {
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("[^\\s\"']+|\"([^\"]*)\"|'([^']*)'");
Matcher regexMatcher = regex.matcher(text);
while (regexMatcher.find()) {
if (regexMatcher.group(1) != null) {
matchList.add(regexMatcher.group(1));
} else if (regexMatcher.group(2) != null) {
matchList.add(regexMatcher.group(2));
} else {
matchList.add(regexMatcher.group());
}
}
System.out.println(matchList);
String[] name = matchList.get(0).split(" ");
String[] address = matchList.get(1).split("/");
return new User(name[0], name[1], address[0], address[1], address[2], Double.parseDouble(matchList.get(2)));
}
Теперь, когда вы хотите проанализировать строку и создать класс User, вызовите указанный выше метод.
Вся первая строка, включая двойные кавычки, является строкой?
Да, это целая строка
@BrownTownCoder, вы должны принять ответ, если он вам помог
Мой вопрос был больше о том, какую логику можно использовать для разбивки String на отдельные свойства класса. Короче, логика парсинга