У меня есть строка «Быть выше 10385,29 в 14:25».Получить двойное значение от строки
Я хочу получить двойное значение из этой строки.
Стараюсь с шаблоном и Сличитель как:
Pattern pattern = Pattern.compile("(\\w+?).(\\w+?)");
Matcher matcher = pattern.matcher(instrumentName);
while (matcher.find()) {
String key = matcher.group(1);
String value = matcher.group(2);
System.out.println("Key : " + key + " value : " + value);
}
Но это работает странно и не находят двойное значение.
Я хочу, чтобы получить в результате Double value = 10385.29
Это значение может быть как xxx.xx
или xxxxx.xx
. После точки всегда есть два числа, но раньше может быть два, пять или более.
См [это демо] (HTTPS://ideone.com/A4Uoay) –
Убедитесь, что вы точно понимаете, что означает регулярное выражение. В настоящее время это, скорее всего, не означает, что вы думаете, что это значит. Обратите внимание, что '.' является специальным символом в регулярных выражениях. См. API-документы ['java.util.regex.Pattern'] (http://docs.oracle.com/javase/8/docs/api/). – Jesper
Это уже ответили; см. [этот вопрос] (http://stackoverflow.com/questions/6734521/getting-a-double-out-of-a-string) для нескольких различных решений. –