大家好!我想知道是否有人可以帮助我。
我有一个字符串-2.100 CM 1.000 CM 1.025 CM
问题是获取CM
之前的值,例如-2.1
,1.0
,1.025
Pattern pattern = Pattern.compile("(\\-*\\d*.\\d*) CM"); would give me -2.1,
Pattern pattern = Pattern.compile(" (\\-*\\d*.\\d*) CM"); 1.0
无法获得第三个值(有没有办法根据它们的出现获取值?
答案 0 :(得分:2)
您可以拆分字符串。
String str = "-2.100 CM 1.000 CM 1.025 CM";
String[] array = str.split("\\s+CM\\s*");
for (String s : array) {
System.out.println(new Double(s));
}
输出:
-2.1
1.0
1.025
您也可以使用 Positive Lookahead 来尝试使用Pattern。
String str = "-2.100 CM 1.000 CM 1.025 CM";
Pattern p = Pattern.compile("[+-]?\\d+\\.?\\d*(?= CM)", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(new Double(m.group()));
}
输出:
-2.1
1.0
1.025
答案 1 :(得分:0)
试试这个,
String input = "-2.100 CM 1.000 CM 1.025 CM";
String[] result = input.split("\\s*CM\\s*");