簡體   English   中英

如何驗證textField輸入?

[英]How to verify textField input?

我知道這應該不太困難,但我的搜索尚未找到有用的東西。 我要做的就是確保用戶在textField中輸入一個正整數。 我試過了:

public class myInputVerifier extends InputVerifier {
    @Override
    public boolean verify(JComponent jc) {
        String text = ((jTextFieldMTU) jc).getText();
        //Validate input here, like check int by try to parse it using Integer.parseInt(text), and return true or false

        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}

因此,在我的主代碼中,如果成功,我想使用它顯示“ OK”,如果不成功,則顯示“輸入正數”。

有人可以指出我正確的方向嗎? 謝謝!

您可以使用try-catch塊來檢查輸入是否為整數:

try {
    int i = Integer.parseInt(input);
    // input is a valid integer
}
catch (NumberFormatException e) {
    // input is not a valid integer
}

字符串具有match方法,您可以將其與正則表達式一起使用,以查看內容是否與特定模式匹配。 正整數的正則表達式為^ [1-9] \\ d * $,因此您可以像這樣使用它...

boolean matches = text.matches("^[1-9]\d*$");

if(matches){
   //Do something if it is valid
}else{
   //Do something if it is not
}

我建議您使用try catch。 捕獲NumberFormatException。 這樣,您可以檢查文本是否可以解析為整數。 如果沒有,您可以向用戶顯示錯誤消息。 之后,您可以使用if else語句檢查數字是否為正,如果不為正,則可以向用戶顯示錯誤消息。 如果您不知道,建議您研究嘗試捕獲。

暫無
暫無

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

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