不能取消引用charAt

尝试FizzBu​​zz问题,但是遇到“ charAt无法取消引用 ”问题。这是我的以下代码供参考。

  public String fizzString(String str) {

  if ((str.charAt(0).equals('f'))&&(str.charAt((str.length)-1).equals('b'))){
   return "FizzBuzz";
  }
  else if (str.charAt(0).equals('f')){
   return "Fizz";
  }
  else if (str.charAt((str.length)-1).equals('b')){
   return "Buzz";
  }
  else{
   return "FizzBuzz";
  }

}
kaiyum88 回答:不能取消引用charAt

让我们看下面的示例:

String str = "fab";
System.out.println(str.charAt(0) == 'f'); //true
System.out.println(str.charAt(0).equals('f')); //error: Cannot invoke equals(char) on the primitive type char
System.out.println(Character.toString(str.charAt(0)).equals("f")); //true
System.out.println(str.startsWith("f")); //true

str是否为空字符串呢?

String str = "";
System.out.println(str.charAt(0) == 'f'); //java.lang.StringIndexOutOfBoundsException
System.out.println(str.charAt(0).equals('f')); //error: Cannot invoke equals(char) on the primitive type char
System.out.println(Character.toString(str.charAt(0)).equals("f")); //java.lang.StringIndexOutOfBoundsException
System.out.println(str.startsWith("f")); //false

现在,我认为您已经知道使用String.startsWithString.endsWithString.charAt更好。

本文链接:https://www.f2er.com/3162041.html

大家都在问