java - 确认 JTextField 是否包含值 0.5-1?

标签 java swing jtextfield

我研究了JTextField中输入的验证,但据我所知,只能验证输入是否为字符串整数数字。谁能建议我如何验证该数字的具体值?例如是否在 0.5 - 1 范围内。谢谢。

最佳答案

两种可能的方法:

将 JTextField 的内容解析为 double 变量并使用简单的 if 语句。 您应该使用 try catch block 来处理可能的 NumberFormatException(如果您的文本无法转换为 double )。

示例:

double value = 0;
try {
    value = Double.parseDouble (yourTextField.getText ());
}
catch (NumberFormatException e) {
    // Handle exception ...
}
if (value >= 0.5 && value <= 1) {
    // ...
}
else {
    // ...
}

您还可以检查您的文本是否与给定的(智能)正则表达式匹配。

考虑以下模式(您需要两个反斜杠来转义点和其他特殊字符):(1(\.0*)?|0?\.[5-9][0-9]*)

此模式接受 1(或 1 后跟小数分隔符和任意数量的零出现)或 0.5(此正则表达式允许“.5”)和 0.99999 之间的数字...

示例(使用 java.util.regex.Pattern ):

System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.4")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0..5")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.111")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.5")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.5000543")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "0.50+")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "1.0")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "1.0000")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "1")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", "21")); // -> false
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", ".56256")); // -> true
System.out.println (Pattern.matches ("(1(\\.0*)?|0?\\.[5-9][0-9]*)", ".46256")); // -> false

关于java - 确认 JTextField 是否包含值 0.5-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43044612/

相关文章:

java - TThreadPoolServer 客户端 org.apache.thrift.transport.TTransportException : java.net.SocketException:管道损坏

java - 框架未全屏显示

java - 在一维中调整 JFrame 的大小

java - 从 JTable 填充 JTextField 时出错

java - 如何使用 JCheckBox 使 JTextField 可编辑,反之亦然?

java - 如何判断两个字符之间是否有空格?

java - 无法从 Java 中的单独类调用方法

java - ThreadContext.pop() 抛出 NoSuchElementException : The ThreadContext stack is empty in log4j-2. 3

java - 在特定时间发送通知

java - 由于错误的身份验证 tomcat,X11 连接被拒绝