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

Java如何批量接收用户输入数字存入数组并调用三元组查找方法

实现方法

你只需要补全控制台输入读取、字符串转整型数组的逻辑即可,不需要修改已经写好的三元组查找方法。

核心实现步骤

  • 用Scanner读取用户输入的整行空格分隔数字字符串
  • 用正则按空白字符分割字符串,得到每个数字对应的字符串片段
  • 将字符串片段逐个转为int类型存入整型数组
  • 把生成的整型数组传入你写好的getArrayTriplets方法执行即可

完整可运行代码

import java.util.Arrays;
import java.util.Scanner;

public class TripletChecker {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入空格分隔的数字:");
        // 读取整行输入,去除首尾多余空格
        String rawInput = scanner.nextLine().trim();
        scanner.close();

        // 按1个或多个连续空白字符分割,兼容多空格、制表符分隔的场景
        String[] numSegments = rawInput.split("\\s+");
        int[] inputArray = new int[numSegments.length];
        for (int i = 0; i < numSegments.length; i++) {
            inputArray[i] = Integer.parseInt(numSegments[i]);
        }

        // 调用已实现的三元组查找方法
        getArrayTriplets(inputArray);
    }

    private static void getArrayTriplets(int[] inputArray)
    {
        System.out.println("Input Array : "+Arrays.toString(inputArray));
         
        System.out.println("Array triplets with sum of first two elements equals third :");
         
        for (int i = 0; i < inputArray.length-2; i++) 
        {
            for (int j = i+1; j < inputArray.length-1; j++) 
            {
                for (int k = j+1; k < inputArray.length; k++)
                {
                     
                    if (inputArray[i] + inputArray[j] == inputArray[k]) 
                    {   
                        System.out.println("["+inputArray[i]+", "+inputArray[j]+", "+inputArray[k]+"]");
                    }
                    else if (inputArray[i] + inputArray[k] == inputArray[j]) 
                    {
                        System.out.println("["+inputArray[i]+", "+inputArray[k]+", "+inputArray[j]+"]");
                    }
                    else if (inputArray[j] + inputArray[k] == inputArray[i])
                    {
                        System.out.println("["+inputArray[j]+", "+inputArray[k]+", "+inputArray[i]+"]");
                    }
                }
            }
        }
    }
}

注意事项

分割字符串时使用\\s+作为匹配规则,比直接传" "做分割兼容性更强,即使用户输入多个连续空格、误输入制表符分隔,也不会产生空字符串片段导致Integer.parseInt报错。
如果需要做输入合法性校验,可以在类型转换外层加try-catch捕获NumberFormatException,在用户输入非数字内容时给出提示。

用你给出的示例输入22 14 50 62 36 40 58 71 90测试,代码会输出所有符合要求的三元组,和预期结果完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:01:26