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

如何不借助额外库拆分候选人ID与姓名至两个数组?

拆分候选人信息为ID数组与姓名数组(Java实现)

需求说明

输入的候选人信息格式为 {id_1},{name_1};{id_2},{name_2};……,每段候选人信息以分号分隔,ID与姓名以逗号分隔。需将这些数据拆分为独立的ID数组和姓名数组,且不使用任何第三方库。

完整实现代码

import java.util.Scanner;

public class A3_Q2 {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        
        // 显示欢迎信息
        System.out.println("欢迎使用简易电子投票系统(SEVS):");
        System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++");

        // 提示用户输入候选人信息
        System.out.println("请输入候选人信息集合(格式:ID1,姓名1;ID2,姓名2;……):");
        String candi = keyboard.nextLine();
        String[] cand = candi.split(";");
        
        // 初始化ID数组和姓名数组,长度与候选人数量一致
        String[] ids = new String[cand.length];
        String[] names = new String[cand.length];
        
        // 遍历拆分每个候选人的ID和姓名
        for (int i = 0; i < cand.length; i++) {
            // 按逗号拆分单个候选人信息,处理可能的格式异常
            String[] info = cand[i].split(",");
            if (info.length == 2) {
                ids[i] = info[0].trim(); // 去除首尾空白符
                names[i] = info[1].trim();
            } else {
                // 格式错误时标记无效数据
                ids[i] = "无效ID";
                names[i] = "无效姓名";
            }
        }

        // 显示功能选项及对应编码
        System.out.println("********************************");
        System.out.println("| 编码 >> 功能描述              |");
        System.out.println("********************************");
        System.out.println("| 1 >> 显示候选人列表           |");
        System.out.println("| 2 >> 为候选人投票             |");
        System.out.println("| 3 >> 添加新候选人             |");
        System.out.println("| 4 >> 显示投票结果             |");
        System.out.println("| 0 >> 退出简易电子投票系统     |");
        System.out.println("********************************");
        
        // 示例:打印拆分后的ID数组和姓名数组
        System.out.println("\n拆分后的ID数组:");
        for (String id : ids) {
            System.out.print(id + " ");
        }
        System.out.println("\n拆分后的姓名数组:");
        for (String name : names) {
            System.out.print(name + " ");
        }
        
        keyboard.close();
    }
}

关键实现逻辑

  • 先用split(";")将输入字符串分割为单个候选人的信息字符串数组
  • 初始化长度匹配的ID数组和姓名数组,遍历每个候选人信息,用split(",")拆分出ID与姓名
  • 增加格式校验,若单个候选人信息无法拆分为两部分,标记为无效数据,避免数组越界异常
  • 调用trim()去除ID和姓名首尾空白字符,提升数据准确性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:11:31