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

如何修改Java代码实现输入多个匹配项时输出对应arr2的全部结果?

问题修正:遍历输入字符串并匹配输出对应结果

原始代码仅能输出第一个匹配项的对应结果(例如输入"am"时输出"ma"),需求改为:当输入多个字符串(如"am bm")时,输出arr2中对应的全部结果(如"ma"、"mb")。

你提供的修改后代码存在两处关键错误:

  • 增强for循环中定义了变量i但未使用,反而错误地用数组对象arr进行匹配判断
  • 用数组arr调用contains和indexOf,永远无法匹配到arr1中的字符串元素

修正后的代码

String[] arr1 = { "am", "bm", "cm" };
String[] arr2 = { "ma", "mb", "mc" };

btnNewButton_1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        String line = textPane.getText();
        String[] inputArr = line.split(" ");
        
        // 提前将arr1转为List,避免循环内重复转换
        List<String> arr1List = Arrays.asList(arr1);
        
        // 遍历所有输入的字符串
        for (String inputStr : inputArr) {
            // 判断当前输入字符串是否在arr1中
            if (arr1List.contains(inputStr)) {
                int index = arr1List.indexOf(inputStr);
                // 输出arr2中对应索引的结果
                System.out.println(arr2[index]);
            }
        }
    }
});

核心修改说明

  • 将循环变量命名为inputStr(语义更清晰),遍历输入拆分后的每个字符串,用当前遍历的inputStr做匹配判断,替代原错误的数组arr
  • 提前将arr1转为List对象,避免每次循环重复执行转换操作,提升代码效率
  • 对每个输入字符串逐一判断,存在于arr1时才获取对应索引并输出arr2的对应元素

内容的提问来源于stack exchange,提问作者Bəxtiyar Əli Ağayar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:24:22