java:尝试通过方法从字符串数组返回字符串值

标签 java arrays string

public String GetValue(String key) {
    for (int i = 1; i<=length; i++) {
        if (key.equals(keyArr[i])) {
            return valueArr[i];
        }
    }
}
public String GetKey(String value) {
    String key;
    for (int i = 1; i<=length; i++) {
        if (value.equals(valueArr[i])) {
            key = keyArr[i];
            return key;
        }
    }
}

我收到错误“此方法必须返回字符串类型的结果”。但valueArr和keyArr这两个数组都是String类型数组。我知道 keyArr[i] 和 valueArr[i] 的值是字符串,因为如果我将方法的返回类型更改为其他类型,它会表示它期望其他类型并得到一个字符串。

最佳答案

那是因为它并不总是返回字符串。例如。如果未找到 key ,if (key.equals(keyArr[i])) { 永远不会为 true,因此,return valueArr[i]; 永远不会得到已执行。

要解决此问题,您需要执行以下操作:

  • for循环后添加return语句,如果没有找到匹配则返回某物,例如:

    public String GetValue(String key) {
        for (int i = 0; i < length; i++) {
            if (key.equals(keyArr[i])) {
                return valueArr[i];
            }
        }
        return null;
    }
    
  • 处理调用方法中的返回类型(即添加空检查或在未找到匹配项时执行适当的操作)。

关于java:尝试通过方法从字符串数组返回字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916186/

相关文章:

java - 连接字 rune 字 ('x' )与单个字符字符串文字 ("x")

python - 使用多字符定界符拆分字符串

java 。比较字符串时忽略重音符号

java - 如何设计我的 Java/C# 库,使其在未来发生变化时保持二进制兼容?

java - AbstractTransactionalJUnit4SpringContextTests 中的 Spring 配置文件

c - 使用指针作为数组?

javascript - 限制在 javascript 或 jquery 中显示的记录数量。每个循环到 html

java - 在 PreparedStatement 中使用 setDate

java - Android逻辑操作&&?

具有大约 20000 个值声明的 Java 数组