所以我不太熟悉java String 方法,我不确定是否有一种简单的方法可以做到这一点。我有一个字符串,其中包含用“:”分隔的几个值,每对由另一个定界符“,”与其他值分隔。例如:
AA:BB,CC:DD,XX:YY,EE:FF
映射是“从”和“到”值。根据一个条件,我得到“from”值,我们以“XX”为例,我想在这种情况下检索“to”值“YY”。
我不确定该怎么做。任何帮助将不胜感激。
谢谢 :)
您可以将字符串转换为地图:
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"
这是一个示例,您可以如何执行此操作。我在示例中使用整数,但您可以很容易地更改它。
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()));
}
}
}