当前位置: 首页 > 知识库问答 >
问题:

如何在Java中检查字符串是否只包含数字

卞轶
2023-03-14

在Java for String类中有一个叫做matches的方法,如何使用这个方法使用正则表达式来检查我的字符串是否只有数字。我尝试了下面的例子,但他们都返回我的结果是假的。

String regex = "[0-9]";
String data = "23343453";
System.out.println(data.matches(regex));
String regex = "^[0-9]";
String data = "23343453";
System.out.println(data.matches(regex));

共有1个答案

盛浩阔
2023-03-14

试试看

String regex = "[0-9]+";

String regex = "\\d+";

根据Java正则表达式,+表示“一次或多次”,\d表示“一个数字”。

首先,如果您对这个解决方案(或其他解决方案)的正确性有疑问,请运行这个测试用例:

String regex = "\\d+";

// positive test cases, should all be "true"
System.out.println("1".matches(regex));
System.out.println("12345".matches(regex));
System.out.println("123456789".matches(regex));

// negative test cases, should all be "false"
System.out.println("".matches(regex));
System.out.println("foo".matches(regex));
System.out.println("aa123bb".matches(regex));

java中,matches方法(在问题中指定)匹配完整的字符串,而不是片段。换句话说,没有必要使用^\\d+$(即使它也是正确的)。请看最后一个否定测试用例。

请注意,如果您使用在线“regex检查器”,那么这可能会有不同的行为。要在Java中匹配字符串片段,可以使用find方法,这里将详细描述:

Pattern pattern = Pattern.compile(regex);
System.out.println(pattern.matcher("1").matches());
System.out.println(pattern.matcher("12345").matches());
System.out.println(pattern.matcher("123456789").matches());
 类似资料:
  • 问题内容: 在Java forString类中,有一个称为matchs的方法,该方法如何使用正则表达式检查我的字符串是否只有数字。我尝试了以下示例,但它们均使我返回了false。 问题答案: 尝试 要么 按照Java 正则表达式 ,其 含义是“一次或多次”,并且其含义是“数字”。 注意:“双反斜杠”是一个 转义序列, 用于获取单个反斜杠-因此,在Java字符串中会提供实际结果: 参考文献: Jav

  • 问题内容: 我正在编写一个程序,其中用户以以下格式输入字符串: 我需要检查字符串中是否有数字 然后只提取数字。 如果我使用或,则无论输入的内容是什么,程序都无法在字符串中找到数字,但是仅在只有数字的情况下才能使用。 我可以使用什么作为查找和提取的解决方案? 问题答案: 我使用的解决方案如下所示: 我确信这不是一个完美的解决方案,但它满足了我的需求。谢谢大家的帮助。:)

  • 问题内容: 我需要检查字符串是否包含数字。任何数字。字符串是否为数字,而不是数字,但包含一个数字。 例子: ‘test’=没有数字。 ‘test2’=包含数字。 问题答案: 使用正则表达式: 不使用正则表达式:

  • 我有这三个字符串: 我如何检查这些字符串中哪一个只包含字母还是只包含数字(用R表示)? 只能在字母检查中为TRUE 它对很有效,但对也很有效,这是我不想要的。 提前谢了。

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:

  • 如何检查字符串是否包含数字?