对于这个问题:
Given a non-empty string and an int N, return the string made starting with char 0, and then every Nth char of the string. So if N is 3, use char 0, 3, 6, ... and so on. N is 1 or more.
everyNth("Miracle", 2) → "Mrce"
everyNth("abcdefg", 2) → "aceg"
everyNth("abcdefg", 3) → "adg"
尝试以下操作时,我收到“类型不匹配:无法从 char 转换为 String”:
public String everyNth(String str, int n) {
for (int i=0; i<str.length(); i = i +n) {
return str.charAt(i);
}
}
但是,如果我使用这个:
public String everyNth(String str, int n) {
String result = "";
// Look at every nth char
for (int i=0; i<str.length(); i = i + n) {
result = result + str.charAt(i);
}
return result;
}
那么结果就很好了。
这个错误是因为当问题最初是字符串时我试图返回一个 int 吗?
以后如何避免这种情况?
有什么建议吗?
提前致谢。
最佳答案
char 和 String 是不同的类型。你的第二个解决方案是正确的。它被定义为 String 并且返回一个 String。您的第一个解决方案在两个方面是错误的:当需要 String 时它返回一个 char,并且它将 return 语句放入 for 循环中。函数只能返回一次,因此 for 循环在该函数中没有用。
关于java - 这个错误是由于类型不匹配造成的吗?将来我该如何避免这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30448406/