![](/img/trans.png)
[英]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.