Java 此错误是由于类型不匹配造成的吗?我今后如何避免这种情况?

Java 此错误是由于类型不匹配造成的吗?我今后如何避免这种情况?,java,Java,关于这个问题: 给定一个非空字符串和一个int N,返回从 使用字符0,然后使用字符串的每N个字符。因此,如果N为3,则使用 字符0,3,6。。。等等N等于或大于1 everyNth(“奇迹”,2)→ “Mrce” everyNth(“abcdefg”,2)→ “aceg” everyNth(“abcdefg”,3)→ “adg” 尝试以下操作时,我遇到“类型不匹配:无法从字符转换为字符串”: public String everyNth(String str, int n) { fo

关于这个问题:

给定一个非空字符串和一个int N,返回从 使用字符0,然后使用字符串的每N个字符。因此,如果N为3,则使用 字符0,3,6。。。等等N等于或大于1

everyNth(“奇迹”,2)→ “Mrce”

everyNth(“abcdefg”,2)→ “aceg”

everyNth(“abcdefg”,3)→ “adg”

尝试以下操作时,我遇到“类型不匹配:无法从字符转换为字符串”:

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){

对于(int i=0;iYes),这是类型不匹配

public String everyNth(String str, int n) {
表示您的方法返回类型字符串,但

return str.charAt(i);
实际上是返回一个字符

你可以把那行改成

return Character.toString(str.charAt(i));


是的,这是类型不匹配

public String everyNth(String str, int n) {
表示您的方法返回类型字符串,但

return str.charAt(i);
实际上是返回一个字符

你可以把那行改成

return Character.toString(str.charAt(i));


是的,这是类型不匹配

public String everyNth(String str, int n) {
表示您的方法返回类型字符串,但

return str.charAt(i);
实际上是返回一个字符

你可以把那行改成

return Character.toString(str.charAt(i));


是的,这是类型不匹配

public String everyNth(String str, int n) {
表示您的方法返回类型字符串,但

return str.charAt(i);
实际上是返回一个字符

你可以把那行改成

return Character.toString(str.charAt(i));

str.charAt(i)
返回一个
char
。这与
字符串不同,这就是编译器抱怨类型不匹配的原因

您可以使用
String.valueOf(theChar)
对其进行转换

或者您可以使用
str.substring(i,i+1)
来获取一个字符串(只有一个字符),而不是
char
str.charAt(i)
返回一个
char
。这与
String
不同,这就是编译器抱怨类型不匹配的原因

您可以使用
String.valueOf(theChar)
对其进行转换

或者您可以使用
str.substring(i,i+1)
来获取一个字符串(只有一个字符),而不是
char
str.charAt(i)
返回一个
char
。这与
String
不同,这就是编译器抱怨类型不匹配的原因

您可以使用
String.valueOf(theChar)
对其进行转换

或者您可以使用
str.substring(i,i+1)
来获取一个字符串(只有一个字符),而不是
char
str.charAt(i)
返回一个
char
。这与
String
不同,这就是编译器抱怨类型不匹配的原因

您可以使用
String.valueOf(theChar)
对其进行转换


或者您可以使用
str.substring(i,i+1)
获取一个字符串(仅包含一个字符)与
char

不同,char和String是不同的类型。第二种解决方案是正确的。它被定义为String并返回String。第一种解决方案在两个方面是错误的:它在需要字符串时返回char,并将return语句放入for循环中。您只能从函数返回一次,因此for loop在该函数中是无用的。

字符和字符串是不同类型的。您的第二个解决方案是正确的。它被定义为字符串并返回字符串。您的第一个解决方案在两个方面是错误的:当需要字符串时,它返回字符,并且它将返回语句放入for循环。您只能从函数返回一次,因此for loop在该函数中是无用的。

字符和字符串是不同类型的。您的第二个解决方案是正确的。它被定义为字符串并返回字符串。您的第一个解决方案在两个方面是错误的:当需要字符串时,它返回字符,并且它将返回语句放入for循环。您只能从函数返回一次,因此for loop在该函数中是无用的。

字符和字符串是不同类型的。您的第二个解决方案是正确的。它被定义为字符串并返回字符串。您的第一个解决方案在两个方面是错误的:当需要字符串时,它返回字符,并且它将返回语句放入for循环。您只能从函数返回一次,因此for loop在该函数中无效。

此循环:

for (int i=0; i<str.length(); i = i +n) {
    return str.charAt(i);
}
此循环:

for (int i=0; i<str.length(); i = i +n) {
    return str.charAt(i);
}
此循环:

for (int i=0; i<str.length(); i = i +n) {
    return str.charAt(i);
}
此循环:

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

谢谢!如果问题以:public String开头,那么我的最终结果需要返回字符串?谢谢!如果问题以:public String开头,那么我的最终结果需要返回字符串?谢谢!如果问题以:public String开头,那么我的最终结果需要返回字符串?谢谢!如果问题以:public String,那么我的最终结果需要返回一个字符串吗?