根据java中的某个条件在两个不同的分隔符之间获取某个子字符串

时间:2012-10-27 01:09:30

标签: java substring delimited

所以我对java String方法并不熟悉,我不确定是否有一种简单的方法可以做到这一点。我有一个字符串,其中包含几个用“:”分隔的值,每个情侣用另一个分隔符“,”分隔。例如:

AA:BB,CC:DD,XX:YY,EE:FF

映射是“from”和“to”值。根据条件,我得到“from”值,让我们以“XX”为例,我想在这种情况下检索“to”值“YY”。

我不确定该怎么做。任何帮助将不胜感激。

谢谢:)

2 个答案:

答案 0 :(得分:1)

您可以将字符串转换为地图:

String[] items = string.split(",");
Map<String, String> map = new HashMap<String, String>();
for (String item : items) {
    String[] split = item.split(":");
    map.put(split[0], split[1]);
}

基本上,你将字符串拆分两次。首先,通过将其与split(",")分开,将其分解为单个键值对,然后循环遍历所有这些对。我们再次拆分每一对,这次是冒号,然后将值存储在一个键值映射中,该映射将字符串键映射到字符串值。

然后您可以从地图中读取值,如下所示:

map.get(key);

例如,使用您的示例数据:

System.out.println(map.get("CC")); // prints "DD"

答案 1 :(得分:1)

这是一个例子,你如何做到这一点。我在我的例子中使用了Integers,但你可以很容易地改变它。

import java.util.ArrayList;
import java.util.List;

class Value {
    int from;
    int to;
    Value(int from,int to){
        this.from = from;
        this.to = to;

    }
    //getter && setter
}

public class Test {
    public static void main(String[] args) {
        String input = "12:13,11:12,12:12,134:413";
        String[] values = input.split(",");
        List<Value> parsedValues = new ArrayList();
        for(String value:values){
            String[] split = value.split(":");
            parsedValues.add(new Value(new Integer(split[0]).intValue(),new Integer(split[1]).intValue()));
        }
    }
}