[java]split()_一串字符串通过分割取key值和value值

有这么一串字符串:

String str = "key1--value1 key2--value2    key3--value3"

想要取到其中的key和value放到Map里,虽然可以这样:

Map<String,String> map = new HashMap<>();
hashMap.put("key1","value1");
hashMap.put("key2","value2");
hashMap.put("key3","value3");

可是如果有十几个、几十个、几百个这样的键值对,就很麻烦了。老师虽然说可以用split(),不过也没具体演示,自己鼓捣暂时做出了效果,先码住方便以后查看吧。

//每个键值对之间的空格可能不止一个,分割的时候需要用"\\s+"
String str = "key1--value1 key2--value2    key3--value3"
Map<String,String> map = new HashMap<>();
String[] strArr = str.split("\\s+");
//分割以后只有每个键值对所在strArr数组的下标不一样,
//再次分割之后key和value总是key在0上value在1上
for(int i=0;i<strArr.length;i++){
	String key = str.split("\\s+")[i].split("--")[0];
	String value = str.split("\\s+")[i].split("--")[1];
	map.put(key,value);
}
System.out.println(map);

如果分割出来的key或value是数字字符串,想要转成整数类型的话,可以用Integer.parseInt()进行转换,像这样:

int key = Integer.parseInt(arr.split("\\s+")[i].split("--")[0]);

你可能感兴趣的:(java初学练习&心得)