是否有一种简单的方法可以解析诸如
之类的行
使用正则表达式输出String,double,double的结果?
e.g。
“纽约40.7127°N 74.0059°W”或
“Washington 38°53'55.133”N 77°02'15.691“W”
答案 0 :(得分:1)
最简单,最简单的方法是按空格分割
String test = "New York 40.7127°N 74.0059°W ";
String[] splited = test.split("\\s+");
for (String item : splited)
System.out.println(item);
如果你想使用正则表达式,那么首先检查非数字的开头以获取名称
Pattern p = Pattern.compile("^(\\D*)");
然后是数字
Pattern p2 = Pattern.compile("(\\d|\\.)*");
你可以得到这样的结果:
while (m2.find())
System.out.println(m2.group(0));
点击此处: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
如果你想获得String或double,那么你只需要解析结果。
答案 1 :(得分:1)
假设问题不是关于°字符的具体问题。正则表达式
Pattern.compile("([\w ]+) (\d.*\w) (\d.*\w)");
将捕获每个字符串中的组,如下所示:
“Washington 38°53'55.133”N 77°02'15.691“W”
“纽约40.7127°N 74.0059°W”
将分组为
Washington,38°53'55.133“N,77°02'15.691”W
纽约,40.7127°N,74.0059°W
我建议您将字符串组转换为正则表达式之外的格式(Double,String,String),因为格式不同。