You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从对应数组中匹配输入姓名获取对应成绩?

如何根据姓名匹配对应成绩

嗨,没错,遍历数组确实是你当前场景下最直接的解决方案~毕竟你用的是两个平行数组(姓名和成绩一一对应),必须找到输入姓名在数组里的索引位置,才能拿到对应的成绩。下面给你详细讲实现思路和代码示例:

核心逻辑步骤

  • 遍历姓名数组,逐个对比用户输入的getName和数组中的每个元素
  • 找到匹配项时,用当前的索引去成绩数组g中取出对应的值返回
  • 别忘了处理“姓名不存在”的情况,避免程序出错

代码示例(以Java为例,匹配你提到的变量类型)

public class ScoreLookup {
    public static int findScore(String[] nameArray, int[] scoreArray, String getName) {
        // 先做个严谨性检查,防止数组为空或长度不匹配
        if (nameArray == null || scoreArray == null || nameArray.length != scoreArray.length) {
            throw new IllegalArgumentException("姓名数组和成绩数组必须非空且长度一致");
        }

        // 遍历姓名数组找匹配项
        for (int i = 0; i < nameArray.length; i++) {
            // 重点!字符串比较要用equals(),不能用==(==比的是对象引用,不是内容)
            if (getName.equals(nameArray[i])) {
                return scoreArray[i];
            }
        }

        // 如果没找到对应姓名,返回一个标识值(比如-1,你可以根据需求调整)
        return -1;
    }

    // 测试用例
    public static void main(String[] args) {
        // 替换成你的20个姓名和对应成绩
        String[] studentNames = {"Alice", "Bob", "Charlie", ...};
        int[] studentScores = {88, 95, 76, ...};

        String inputName = "Bob";
        int resultScore = findScore(studentNames, studentScores, inputName);

        if (resultScore != -1) {
            System.out.println(inputName + "的成绩是:" + resultScore);
        } else {
            System.out.println("未找到该学生的成绩记录");
        }
    }
}

额外优化建议

如果后续你的数据量变大(比如超过20个),遍历数组的效率会逐渐降低。这时候可以改用HashMap来存储姓名和成绩的映射关系,查找时间会从O(n)降到O(1):

// 先把平行数组转成HashMap
HashMap<String, Integer> nameToScore = new HashMap<>();
for (int i = 0; i < studentNames.length; i++) {
    nameToScore.put(studentNames[i], studentScores[i]);
}

// 查找成绩只需一行代码
int score = nameToScore.getOrDefault(getName, -1);

另外,如果姓名存在大小写差异(比如输入"bob"但数组里是"Bob"),可以用equalsIgnoreCase()来忽略大小写比较,替换代码里的equals()即可。

内容的提问来源于stack exchange,提问作者user8595015

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:18:09