Java 将行解析为UserInfo
在Java中将下面这样的行解析为给定的用户对象的最佳方法是什么Java 将行解析为UserInfo,java,Java,在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
"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;
}
若您可以将方法添加到用户类,那个么添加一个静态方法解析,如下所示 公共静态用户解析(字符串文本){ } 如果用户是一个库类,您不能更改它,那么您可以创建一个实用程序类,并在其中添加上述方法 下面是parse方法的实现
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)));
}
公共静态用户解析(字符串文本){
列表匹配列表=新的ArrayList();
Pattern regex=Pattern.compile(“[^\\s\”]+\”([^\”]*)\“\”([^']*)”)”;
Matcher regexMatcher=regex.Matcher(文本);
while(regexMatcher.find()){
if(regexMatcher.group(1)!=null){
添加(regexMatcher.group(1));
}else if(regexMatcher.group(2)!=null){
添加(regexMatcher.group(2));
}否则{
add(regexMatcher.group());
}
}
System.out.println(匹配列表);
String[]name=matchList.get(0).split(“”);
String[]address=matchList.get(1).split(“/”);
返回新用户(名称[0]、名称[1]、地址[0]、地址[1]、地址[2]、Double.parseDouble(matchList.get(2));
}
现在,无论何时您想要解析字符串并创建用户类,都可以调用上面定义的方法
- 干杯李>
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)));
}