簡體   English   中英

如何檢查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來管理ConnectionPreparedStatement

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM