我试图确保给定的字符串是一个有效的双。这类问题的大多数答案建议使用Double.parseDouble(inputString)
。然而,这并不像我希望的那样健壮。例如,如果我输入一个字符串,如“1one”Double.parseDouble("1one")
将输出“1”而不是返回无效双精度的例外。如何解释“,”和“。”当确保一个字符串是一个有效的双?
我已经尝试通过遍历字符串,并确保每一个数字是一个数字来解决这个问题:
for (int i = 0; i < number.length(); i++) {
previousChar = number.charAt(i);
if (!Character.isDigit(number.charAt(i))
&& number.charAt(i) != '.'
&& number.charAt(i) != ',') {
return null;
}
}
但对于案件,如“20..02”或“20,02 “这只会返回20.我想知道解决这些情况的最佳方式是什么。
检查是否只有数字,只有一个或零,','或'.'不在字符串的末尾? –
正则表达式来验证它? – Randy
你确定'parseDouble'为'1one'工作吗? – Maroun