引用这个问题here 。我有一个新问题。我想从字符串中提取最后两个出现的数字(经度/纬度)。
我使用引用答案中的方法。可以在此处找到发生错误的简单示例:
public static void main(String[] args) {
String input = "St. Louis (38.6389, -90.342)";
Pattern p = Pattern.compile("-?[\\d\\.]+");
Matcher m = p.matcher(input);
while(m.find()){
System.out.println(m.group());
}
}
控制台输出如下:
.
38.6389
-90.342
问题似乎出在“.”上。在“圣路易斯”。有人可以帮助我以一种好的方式解决这个问题吗?
非常感谢您的每一个回答/评论。
最佳答案
像下面这样改变你的正则表达式,
Pattern p = Pattern.compile("-?\\d+(?:\\.\\d+)?");
最后的 (?:\\.\\d+)?
将使小数部分成为可选。
关于java - Java中从字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28806579/