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

Java实现:向ArrayList存任意对象及仅存字符串(输入整数时退出)

两种Java输入处理方案实现

方案一:支持任意对象输入的ArrayList实现

该方案可接收整数、字符串、浮点数等任意类型的输入,将对应类型的对象存入ArrayList,输入结束(按Ctrl+D)后输出集合内容及各元素类型。

import java.util.*;

class AnyTypeAL {
    public void alMethod() {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入任意类型内容(结束输入按Ctrl+D):");
        ArrayList<Object> alobj = new ArrayList<>();

        while (sc.hasNext()) {
            if (sc.hasNextInt()) {
                alobj.add(sc.nextInt());
            } else if (sc.hasNextDouble()) {
                alobj.add(sc.nextDouble());
            } else {
                alobj.add(sc.next());
            }
        }

        System.out.println("\nAL ---> " + alobj + "\n");
        System.out.println("---- 遍历ArrayList ----");
        for (Object var : alobj) {
            System.out.println("类型:" + var.getClass().getSimpleName() + ",值:" + var);
        }
        sc.close();
    }
}

public class AnyTypeArrayListDemo {
    public static void main(String[] args) {
        AnyTypeAL obj = new AnyTypeAL();
        obj.alMethod();
    }
}

关键说明:

  • 用ArrayList<Object>作为集合容器,兼容所有类型对象存储
  • 通过Scanner的hasNextXxx()系列方法判断输入类型,匹配后存入对应包装类或字符串对象
  • 遍历输出时显示元素类型,清晰区分不同输入的存储形式

方案二:仅接收字符串输入,输入整数时退出循环

该方案仅收集非整数的字符串输入,一旦检测到整数输入,立即终止循环并输出已收集的字符串集合。

import java.util.*;

class StringOnlyAL {
    public void alMethod() {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入字符串(输入整数将退出):");
        ArrayList<String> alobj = new ArrayList<>();

        while (true) {
            String input = sc.next();
            // 尝试转换为整数,判断输入是否为整数
            boolean isInteger = true;
            try {
                Integer.parseInt(input);
            } catch (NumberFormatException e) {
                isInteger = false;
            }

            if (isInteger) {
                System.out.println("检测到整数输入,退出循环");
                break;
            } else {
                alobj.add(input);
            }
        }

        System.out.println("\nAL ---> " + alobj + "\n");
        System.out.println("---- 遍历ArrayList ----");
        for (String var : alobj) {
            System.out.println(var);
        }
        sc.close();
    }
}

public class StringOnlyArrayListDemo {
    public static void main(String[] args) {
        StringOnlyAL obj = new StringOnlyAL();
        obj.alMethod();
    }
}

关键说明:

  • 用ArrayList<String>专门存储字符串输入
  • 通过try-catch捕获NumberFormatException判断输入是否为整数,转换成功则触发循环退出
  • 采用无限循环逻辑,直到检测到整数输入时执行break终止

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:10:32