如何断言包含至少一个数字的字符串?
Posted
技术标签:
【中文标题】如何断言包含至少一个数字的字符串?【英文标题】:how to assert a string which contains atleast one number? 【发布时间】:2022-01-13 12:54:04 【问题描述】:我想检查我的实际值是否有任何数字或字符串。我如何断言它?
public class Regex
@Test
public static void m1()
String str = "12ABC";
// System.out.println(str.matches("\\d.*")); // true
// System.out.println(str.matches("[0-9].*")); // true
Assert.assertEquals(str.matches("\\d.*"), "str");
【问题讨论】:
【参考方案1】:要断言字符串有一个或多个数字,请使用:
@Test
public static void m1()
String str = "12ABC";
Assert.assertTrue(str.matches(".*\\d.*"));
请注意,String#matches
API 的本质是将模式应用于整个字符串。所以.*\d.*
是我们想要的模式。
【讨论】:
但在进行更改后我仍然收到以下错误 Assert.assertEquals(str.matches(".*\d.*"), "str"); [RemoteTestNG] 检测到 TestNG 版本 7.4.0 FAILED: m1 java.lang.AssertionError: expected [str] but found [true] at org.testng.Assert.fail(Assert.java:99) 能否请你写代码并帮助我 您没有在我的回答中使用代码。您仍在使用旧代码。 嗨,蒂姆,我对代码非常陌生,如果可以,请编写代码,我不知道在哪里进行更改以及如何进行更改。 请尝试我更新的答案。以上是关于如何断言包含至少一个数字的字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查字符串是不是至少包含一个数字、字母和既不是数字也不是字母的字符?
包含至少 8 个字符和至少 1 个非字母数字字符的密码的正则表达式
用java自动生成口令由数字、大小写字母及特殊字符,且至少包含其中两种字符