如何检查字符串是否包含两个星号字符?

Ach*_*ius 9 java string

我们有一个字符串输入及以下组合是有效的(例如sunday,*sunday*,sun*day*,*sun*day,su*nda*y)如果只包含一个星号,那么这是一个错误的输入.

因此,鉴于上述输入,我如何检查字符串是否包含多个星号.

Joa*_*uer 9

int asterisk1 = input.indexOf('*');
boolean hasTowAsterisks = asterisk1 != -1 && input.indexOf('*', asterisk1+1) != -1;
Run Code Online (Sandbox Code Playgroud)

编辑:此解决方案假设要求"至少有两个星号".


Mar*_*ers 6

您可以使用String.matches正则表达式:

"^.*(?:\\*.*){2}$"
Run Code Online (Sandbox Code Playgroud)

如果你想正好两个星号:

"^[^*]*(?:\\*[^*]*){2}$"
Run Code Online (Sandbox Code Playgroud)

尽管对于此任务,只需遍历字符串并计算星号可能会更简单。

  • 谁能解释一下这个正则表达式? (2认同)