我有一个存储银行帐号的GUI。在验证期间,我需要检查用户是否输入了帐号...对于字符串字段,可以使用isEmpty()方法...但是对于整数字段,例如bank acc no,Integer.parseInt(jTextField1.getText() ).isEmpty()会给出错误。当它是一个整数时如何检查空字段?
答案 0 :(得分:3)
检查为空,然后将其解析为整数,如
if(!jTextField1.getText().isEmpty()){
Integer.parseInt(jTextField1.getText());
}
答案 1 :(得分:1)
您应该尝试以下代码
if(!(jTextField1.getText().isEmpty()))
{
int accountNumber=Integer.parseInt(jTextField1.getText());
}
答案 2 :(得分:1)
类Integer
只是原始int
类型顶部的包装。因此它可以是null
或存储有效的整数值。没有明显的“空”定义。
如果仅将Integer
与空白的String
进行比较,您将得到false
的结果。总是。请参见Integer.equals(Object o)
的实现:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
首先,您可以在以下行的整数解析过程中获得一个NumberFormatException
:
Integer accountNumber = Integer.parseInt(jTextField1.getText())
您已经明白了,因为For input string: ""
看起来像一条NumberFormatExpection
消息。
在您的示例中,您应该检查"accountNumber"
属性值是否为数字(假设它是字符串),然后对其进行解析,或者按原样解析并捕获NumberFormatException
该{{1} }引发了错误的论点。
第一个解决方案:
Integer.parseInt()
第二个解决方案:
if(!jTextField1.getText().isEmpty() && jTextField1.getText().matches("\\d+")){ //null-check and regex check to make sure the string contains only
Integer accountNumber = Integer.parseInt(jTextField1.getText());
}
}
希望这对您有帮助。
P.S。如果您使用版本7或更高版本的Java,请考虑使用try-with-resources来管理try{
Integer accountNumber = Integer.parseInt(jTextField1.getText());
}catch (NumberFormatException e) {
// handle error
和Connection
。