我创建了一个简单的应用程序,用户输入两个值并使用答案自动更新文本字段并检查输入是否为数字。
用于检查用户输入的代码(用于此问题:How to Auto Calculate input numeric values of Text Field in JAVA)如下:
private boolean isDigit(String string)
{
for (int n = 0; n < string.length(); n++)
{
//get a single character of the string
char c = string.charAt(n);
if (!Character.isDigit(c))
{
//if its an alphabetic character or white space
return false;
}
}
return true;
}
虽然有效,但当文本字段为空时,会出现以下错误消息:java.lang.NumberFormatException: For input string: ""
。
如何更改我使用的代码,以便空白文本字段可以接受并且不会产生错误?
答案 0 :(得分:2)
您可以在开始时添加if
来检查字符串是否合法
private boolean isDigit(String string)
{
if(string == null || string.isEmpty()) {
return false;
}
for (int n = 0; n < string.length(); n++)
{
//get a single character of the string
char c = string.charAt(n);
if (!Character.isDigit(c))
{
//if its an alphabetic character or white space
return false;
}
}
return true;
}
答案 1 :(得分:2)
您不能对空字符串或空格应用isDigit()。 您可以使用&#39; if&#39;条件是在继续逻辑之前检查字符串是否为空,如下所示:
private boolean isDigit (String string) {
if (string.length()>=1) {
for (int n = 0; n < string.length(); n++) {
//logic
}
}else {
return false;
}
}