【发布时间】:2023-03-09 21:45:02
【问题描述】:
尝试 FizzBuzz 问题,但遇到“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";
}
}
【问题讨论】:
-
比较基本类型,如
char和==。 -
它返回一个
char,你可以和==比较。 -
有趣的是,这正是臭名昭著的 FizzBuzz 问题所要揭示的类型。
-
我改为使用 startWith() 和 endWith() 函数来帮助解决我的问题,但是使用这个示例,但是使用 == 并将长度更改为 length(),仍然没有解决我的问题版本。
-
想法? 我更喜欢
String.startsWith和String.endsWith,而不是String.charAt。我不会多次执行测试,而是将结果保存到局部变量中。我会开始boolean f = str.startsWith("f"), b = str.endsWith("b");。如果两个条件都不成立,请不要忘记返回原始str(您当前返回“FizzBuzz”两次)。如果你真的想使用String.charAt-boolean f = str.charAt(0) == 'f', b = str.charAt(str.length() - 1) == 'b';