[英]How to check if a field was initialized or contains the default value in Java
[英]How to check if a text field is not empty in Java & contains Integer value?
我有一个存储银行帐号的 GUI,在验证期间,我需要检查用户是否输入了帐号。
对于字符串字段,可以使用 isEmpty() 方法,但是对于整数字段帐号呢?
Integer.parseInt(jTextField1.getText()).isEmpty()
会给出一个错误,当它是一个整数时如何检查空字段?
在将其解析为整数之前检查为空
if(!jTextField1.getText().isEmpty()){
Integer.parseInt(jTextField1.getText());
}
你应该试试下面的代码
if(!(jTextField1.getText().isEmpty()))
{
int accountNumber=Integer.parseInt(jTextField1.getText());
}
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"
属性值是否是一个数字(假设它是一个字符串)然后解析它,或者按原样解析它并捕获Integer.parseInt()
在不正确的参数上抛出的NumberFormatException
。
第一个解决方案:
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());
}
第二种解决方案:
try{
Integer accountNumber = Integer.parseInt(jTextField1.getText());
}catch (NumberFormatException e) {
// handle error
}
希望这对你有帮助。
PS 如果您使用 Java 7 或更高版本,请考虑使用try-with-resources来管理Connection
和PreparedStatement
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.