繁体   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