Java 如何检查文本字段是否仅包含(点)字符

Java 如何检查文本字段是否仅包含(点)字符,java,Java,如何检查文本字段是否仅包含(点)字符。文本字段可以包含以下内容 .9 = > Valid 9. = > Valid 9.23 = >Valid 但是如果TextField只包含(.),那么应该向用户抛出一条错误消息。我不能执行Text.startsWith()或两者都不执行Text.contains(),因为在其他情况下两者都可能失败。您只需使用 text.equals(".") 或者,考虑到空格 text.trim().equals(".") 你可以简单地使用 text

如何检查文本字段是否仅包含(点)字符。文本字段可以包含以下内容

.9 = > Valid
9. = > Valid
9.23 = >Valid
但是如果TextField只包含(.),那么应该向用户抛出一条错误消息。我不能执行
Text.startsWith()
或两者都不执行
Text.contains()
,因为在其他情况下两者都可能失败。

您只需使用

text.equals(".")
或者,考虑到空格

text.trim().equals(".")
你可以简单地使用

text.equals(".")
或者,考虑到空格

text.trim().equals(".")

如果您还必须检查除了点之外您还有一个数字,那么您可能应该编写几个regexp

在您的情况下,如果字符串与以下模式匹配,则该字符串是有效的:

\d+       // Digits without the dot
\d*\.\d+  // Number with some digits after the dot
\d+\.\d*  // Number with some digits before the dot

如果您还必须检查除了点之外您还有一个数字,那么您可能应该编写几个regexp

在您的情况下,如果字符串与以下模式匹配,则该字符串是有效的:

\d+       // Digits without the dot
\d*\.\d+  // Number with some digits after the dot
\d+\.\d*  // Number with some digits before the dot

你可以使用两种方法

if(yourTextFieldName.getText().endsWith(".") && yourTExtFieldName.startsWith(".")) {
    //write your code here
}

你可以使用两种方法

if(yourTextFieldName.getText().endsWith(".") && yourTExtFieldName.startsWith(".")) {
    //write your code here
}

使用这个正则表达式

text.matches("\\d+|\\d*\\.\\d+|\\d+\\.\\d*")
  • \\d+
    只匹配数字
  • \\d*\.\\d+
    匹配以点或数字开头并包含点的字符串
  • \\d+\.\\d*
    匹配以数字开头、包含点和任意位数的字符串 之后

请记住,此表达式也会接受以0开头的数字。

使用此正则表达式

text.matches("\\d+|\\d*\\.\\d+|\\d+\\.\\d*")
  • \\d+
    只匹配数字
  • \\d*\.\\d+
    匹配以点或数字开头并包含点的字符串
  • \\d+\.\\d*
    匹配以数字开头、包含点和任意位数的字符串 之后

请记住,此表达式也会接受以0开头的数字。

这是不正确的。大写字母D(\D)与非数字匹配。它是\d的否定形式。这是不正确的。大写字母D(\D)与非数字匹配。它是\d的否定形式。它与“.abc123”类似。它与“.abc123”类似