为什么此代码中的引号是必需的?

时间:2015-12-14 02:56:14

标签: java string quote

对不起,如果这是一个愚蠢的问题,可能是......这是来自codingbat(练习:everNth)

为什么这有效?

public String everyNth(String str, int n) {
String characters = "";

for (int i = 0; i < str.length(); i = i + n) {
characters = characters + Character.toString(str.charAt(i));
}

return characters;
}

但是这个没有?

public String everyNth(String str, int n) {

for (int i = 0; i < str.length(); i = i + n) {
return Character.toString(str.charAt(i));
}

}

^^给出了错误:“此方法必须返回String类型的结果”

但是,Character.string()方法是否已创建字符串?

为什么我必须添加额外的引号?谢谢你们!! ~~和平与爱情

1 个答案:

答案 0 :(得分:4)

它与引号无关。问题是在 return循环之后,您没有for语句

编译器警告您,如果永远不会输入for循环,那么您将永远不会返回任何内容。您需要确保您的方法在所有情况下返回一个字符串值,而不仅仅是在输入循环时。

为了更好地理解,请完成您的方法,并考虑如果str的长度为零,会发生什么。那么你的方法会返回什么?

修改

然而,正如WalterM所指出的那样,请记住,即使您修复了编译器错误,第二种方法的逻辑也与第一种方法的逻辑不同。第二种方法只返回字符串的第一个字符。