如何将字符串拆分为两个并将其存储在字段中

时间:2013-12-31 23:24:13

标签: java string hashmap

我有一类字段如下:

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>();

我的钥匙是乔治,我的价值是布朗。

我不确定如何做到这一点。

3 个答案:

答案 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);
}