我正在 CodingBat.com (extraFront) 上解决一个基本的 Java 字符串问题。
任务是,给定一个任意长度的字符串,返回重复三遍的前两个字符。第一个示例是我最终直观地完成的操作:
public String extraFront(String str) {
if (str.length() <= 2){
String front = str;
}else{
String front = str.substring(0,2);
}
return front+front+front;
}
这给了我一个错误,前面无法解决。我猜我需要在循环外定义变量,所以我将代码更改为以下代码,它可以正常工作:
public String extraFront(String str) {
String front;
if (str.length() <= 2){
front = str;
}else{
front = str.substring(0,2);
}
return front+front+front;
}
令我困惑的是,为什么这会有所不同,因为无论如何都要声明变量,不是吗?这是 CodingBat 处理代码的一个特点,还是实际上是一个错误?如果是,为什么这个代码不正确?如果它不正确,是不是风格不好?