为什么此代码中需要引号?
Why are the quotes necessary in this code?
嗨,抱歉,如果这是一个愚蠢的问题,可能是...这是来自 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));
}
}
^^ 给我错误:"This method must return a result of type String"
但是,Character.string() 方法不是已经创建了一个字符串吗?
为什么我必须添加额外的引号?谢谢你们!!~~和平与爱
与引号无关。问题是您没有 return
语句 在 for
循环之后。
编译器警告您,如果从未进入 for
循环,那么您将永远不会 return 任何事情。您需要确保您的方法 return 在 所有 情况下都是一个字符串值,而不仅仅是在进入循环时。
为了更好地理解,遍历您的方法,并考虑如果 str
的长度为零会发生什么。那么你的方法return是什么?
编辑
但是,正如 WalterM 所指出的,请记住,即使您修复了编译器错误,您的第二种方法的逻辑也与第一种方法不同。第二种方法只 return 字符串的第一个字符。
嗨,抱歉,如果这是一个愚蠢的问题,可能是...这是来自 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));
}
}
^^ 给我错误:"This method must return a result of type String"
但是,Character.string() 方法不是已经创建了一个字符串吗?
为什么我必须添加额外的引号?谢谢你们!!~~和平与爱
与引号无关。问题是您没有 return
语句 在 for
循环之后。
编译器警告您,如果从未进入 for
循环,那么您将永远不会 return 任何事情。您需要确保您的方法 return 在 所有 情况下都是一个字符串值,而不仅仅是在进入循环时。
为了更好地理解,遍历您的方法,并考虑如果 str
的长度为零会发生什么。那么你的方法return是什么?
编辑
但是,正如 WalterM 所指出的,请记住,即使您修复了编译器错误,您的第二种方法的逻辑也与第一种方法不同。第二种方法只 return 字符串的第一个字符。