在java中拆分字符串并使用另一个字符串映射到value

时间:2015-01-08 06:19:43

标签: java regex string

我需要在java中拆分字符串并将其映射到城市,国家和大陆

String s = "mumbai| india - Asia";
String b ="{city}|{country}-{Continent}"

其中:|-是特殊字符

输出:

city - mumbai
country - india
continent - Asia

3 个答案:

答案 0 :(得分:2)

为什么不使用命名捕获组?

(?<city>[^|]*)\s*\|\s*(?<country>[^-]*)-\s*(?<continent>[\w\s]*)

演示:

https://regex101.com/r/kZ4tQ7/1

查看右侧的匹配信息

答案 1 :(得分:0)

你可以尝试

String s = "mumbai| india - Asia";
String[] splitString = s.split("|");
String city = spiltString[0];
String secondSplit[] = splitString[1].split(" - ");
String country = secondSplit[0];
String continent = secondSplit[1];

答案 2 :(得分:0)

 Try this.

 String s = "mumbai| india - Asia";
 String b ="{city}|{country}-{Continent}";

 String city = s.split("\\|")[0];
 String country = s.split("\\|")[1].split("-")[0];
 String cont =s.split("\\|")[1].split("-")[1];


 String cityT = b.split("\\|")[0];
 String countryT = b.split("\\|")[1].split("-")[0];
 String contT =b.split("\\|")[1].split("-")[1];



System.out.println(cityT.replace("{", "").replace("}", "") +" - " + city); 
System.out.println(countryT.replace("{", "").replace("}", "") +" - " +  country); 
System.out.println(contT.replace("{", "").replace("}", "") +" - " + cont);