1 回答

TA貢獻1843條經驗 獲得超7個贊
您可以使用正則表達式并將其替換為第一個組(您的有效數字)。在方法中使用它:\D*(\d+\.?\d*)\D*$1findValid()
public String findValid(String value) {
return value.replaceAll("\\D*(\\d+\\.?\\d*)\\D*", "$1");
}
現在,您可以使用它來查找值的有效數字。要檢查輸入值是否有效,您可以檢查輸入是否等于有效值:
Arrays.stream(values)
.forEach(s -> {
String valid = findValid(s);
System.out.println(s + " => " + valid + " (" + (valid.equals(s) ? "valid" : "invalid") + ")");
});
這將打印:
0 => 0 (valid)
0. => 0. (valid)
0.0 => 0.0 (valid)
0.0. => 0.0 (invalid)
0.00 => 0.00 (valid)
0.00. => 0.00 (invalid)
0.000 => 0.000 (valid)
10.000. => 10.000 (invalid)
0.0/ => 0.0 (invalid)
0.0@ => 0.0 (invalid)
添加回答
舉報