有没有人知道如何将WS返回的字符串拆分为不同的字符串?
String wsResult = "SONACOM RC, RUE DES ETOILES N. 20, 75250 PARIS (MI)";
我正试图把它分成:
String name = "SONACOM RC";
String adress = "RUE DES ETOILES N. 20";
String postalCode = "75250";
String city = "PARIS";
N.B:WS的返回仅改变我的参数内部
提前感谢您的帮助
答案 0 :(得分:1)
您可以在4个捕获组中捕获数据。您提供的示例使用大写字符,您可以将其与[A-Z]
匹配。
如果您还要匹配小写字母,数字和下划线,则可以将[A-Z]
或[A-Z\d]
替换为\w
。
你可以通过多种方式解决这个问题。一种方法可能是:
([A-Z ]+), +([A-Z\d .]+), +(\d+) +([A-Z\d() ]+)
<强>解释强>
([A-Z ]+)
, +
([A-Z\d .]+)
, +
(\d+)
+
([A-Z\d() ]+)
答案 1 :(得分:0)
根据您的喜好分割它的一种简单方法是使用wsResult.split(",")
。但是,您必须在75250
和Paris
之间添加逗号:
String wsResult = "SONACOM RC, RUE DES ETOILES N. 20, 75250, PARIS (MI)";
String[] temp = wsResult.split(",");
String name = temp[0];
String adress = temp[1];
String postalCode = temp[2];
String city = temp[3];
使用它,您将获得您正在寻找的输出。
修改强>
另一种在不添加逗号的情况下获取输出的方法是执行此操作(使用上面的代码):
for(int i = 1; i<postalCode.length(); i++){
if(postalCode.charAt(i) == ' ') {
city = postalCode.substring(i,postalCode.length());
postalCode = postalCode.substring(0,i);
break;
}
}
有关详情,请查看the String class in the API Java和this Stack Overflow question。