如果字符串中的所有字母都相同,则尝试返回 true

Har*_*You 3 java operators char

到目前为止我所拥有的:

 public boolean allSameLetter(String str)
{
  for (int i = 1; i < str.length(); i++)
    {
        int charb4 = i--;
        if ( str.charAt(i) != str.charAt(charb4))
        {
        return false;
        }

        if ( i == str.length())
        {
        return true;
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

如有效率低下之处,敬请谅解;一般来说,对于编码来说仍然相对较新。我是否缺乏一起使用运算符和 .charAt() 方面的知识?这不合逻辑吗?还是我的错误在其他地方?

Gay*_*tti 6

使用正则表达式:

return str.matches("^(.)\\1*$");
Run Code Online (Sandbox Code Playgroud)

使用流:

str.chars().allMatch(c -> c == str.charAt(0));
Run Code Online (Sandbox Code Playgroud)

其他:

return str.replace(String.valueOf(str.charAt(0), "").length() == 0;
Run Code Online (Sandbox Code Playgroud)