如何确保一个字符串正好有一个子字符串正好n次?

2022-09-03 14:25:25

我想检查字符串是否包含某个子字符串n次。我知道我可以做到:

Assertions.assertThat(myString).contains("xyz");

甚至Assertions.assertThat(myString).containsOnlyOnce("xyz");

但是我怎么能确保这一点n次呢?

我尝试了这样的东西:

Assertions.assertThat(myString).areExactly(n, myString.contains("xyz"));但可悲的是,这是不可编译的。

有什么想法吗?


答案 1

您可能正在寻找 StringUtils.countMatches

计算一个字符串在另一个字符串中的出现次数


答案 2

你可以有这样的正则表达式,测试字符串“myString”有子字符串“xyz”n次。

Assertions.assertThat(myString).containsPattern("(xyz.*?){n}");

可以将 n 替换为要测试的子字符串计数。


推荐