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/