我有一类字段如下:
public class EmployeeInformationNames {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
如果我有一个字符串
String str = "First Name: George\nLast Name: Brown";
我想解析字符串并将其存储在地图中
Map<String, String> myMap = new HashMap<String, String>();
我的钥匙是乔治,我的价值是布朗。
我不确定如何做到这一点。
答案 0 :(得分:0)
我建议如下:
String[] parsedInput = str.split("\n");
String firstName = parsedInput[0].split(": ")[1];
String lastName = parsedInput[1].split(": ")[1];
myMap.put(firstName,lastName);
答案 1 :(得分:0)
正则表达式方法可能包括:
首先用:
提取名字和姓氏String str = "First Name: George\nLast Name: Brown";
Pattern namePat = Pattern.compile("Name: (\\w+)");
Matcher nameMatcher = namePat.matcher(str);
nameMatcher.find();
String firstName = nameMatcher.group(1);
nameMatcher.find();
String lastName = nameMatcher.group(1);
然后使用:
将名字和姓氏添加到HashMap
myMap.put(firstName, lastName);
Java Regex资源(如果感兴趣):
http://www.vogella.com/articles/JavaRegularExpressions/article.html
答案 2 :(得分:0)
使用合适的正则表达式
分割输入字符串String str = "First Name: George\nLast Name: Brown";
Map<String, String> map = new HashMap<String, String>();
Pattern pattern = Pattern.compile(".*?:\\s*(\\w+)\\s*\n.*?:\\s*(\\w+)");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println("matcher group 1: " + matcher.group(1));
System.out.println("matcher group 2: " + matcher.group(2));
map[matcher.group(1)] = matcher.group(2);
}