我试图检查用户在文本框中输入字符时是否为数字。如果不是,则应立即将其从文本框中删除。
发生的情况是我输入数字 1(或任何数字或字符),当它显然是一个数字时,它会从文本框中删除该值。
这是我正在使用的事件:
private void txtLengthAKeyReleased(java.awt.event.KeyEvent evt) {
removeLastChar(txtLengthA); //pass the textbox
}
这是 removeLastChar() 方法:
public static void removeLastChar(JTextField txt)
{
//Get string from text field
String str = txt.getText();
//Make sure length > 0
if( (str.length()) != 0)
{
//Get the last char of the string
String s = str.substring(str.length()-1, str.length()-1);
System.out.println(s); //test debug
//If not numeric (try/catch Double.parseDouble)
if(!isNumeric(s));
{
//Remove last char from the text box
str = str.substring(0, str.length()-1);
txt.setText(str);
}
}
}
检查字符串是否为数字:
isNumeric() function:
public static boolean isNumeric(String str)
{
try
{
double d = Double.parseDouble(str);
}
catch(NumberFormatException nfe)
{
return false;
}
return true;
}