java - 这个错误是由于类型不匹配造成的吗?将来我该如何避免这种情况?

标签 java

对于这个问题:

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/

相关文章:

macos - Mac 上已更新至 JDK7,现在出现 AquaTableUI 异常

java - 将 JLabel 类绘制到另一个 JPanel 类时出现问题

java - 为什么未调用 Spring/Flex/BlazeDS 消息传递服务适配器?

java - android中字符串的限制

java - createButton - SWT.PUSH 与 OK

java - Spring 安全 "Remember Me"复选框

java - 如何在java中创建以数字开头的xml根标签。请建议我任何解决方案

Java:复制具有双扩展名的文件

java - 注释=评论?

java - 使用简单的 xml 持久化对象时如何格式化日期或 double 值