Обязательно использовать регулярное выражение? Если это не так, вы можете использовать:
public class Split {
public static void main(String[] args) {
String line = "COD Amount = 333.98";
String[] array = line.split("=");
double amount = Double.parseDouble(array[1]);
System.out.println(amount);
}
}
Надеюсь, это поможет.
EDIT
С регулярным выражением:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Split {
public static void main(String[] args) {
String line = "COD Amount = 333.98";
Pattern p = Pattern.compile(".+= (\\d+\\.\\d+)");
Matcher m = p.matcher(line);
if (m.find()) {
System.out.println(m.group(1));
}
}
}
Но убедитесь, что все строки в том же формате: [код] [описание] = [число]
(I прежнему считают, что первое решение наиболее подходит)
EDIT 2
Поскольку ваш вход выглядит так: "COD Amount = 333.98, Coverage = $564.000"
(вы должны предоставить нам весь формат ваших строк в исходном вопросе)
вы можете объединить два предыдущих решения:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Split {
public static void main(String[] args) {
String line = "COD Amount = 333.98, Coverage = $564.000";
String[] array = line.split(",");
for (int i = 0; i < array.length; i++) {
Pattern p = Pattern.compile(".+= \\$?(\\d+\\.\\d+)");
Matcher m = p.matcher(array[i]);
if (m.find()) {
System.out.println(m.group(1));
}
}
}
}
Простые способы, кроме регулярного выражения. это обязательно? –