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

Java新手求助:按规则组合姓名与随机数生成用户名实现问题

修正后可直接运行的代码

import java.util.Random;
import java.util.Scanner;

public class FirstNameLastName {
    public static void main(String[] args) {
        try (Scanner in = new Scanner(System.in)) {
            // 输入姓氏并存储
            System.out.println("请输入您的姓氏(英文):");
            String lastName = in.nextLine().trim();
            // 输入名字并存储
            System.out.println("请输入您的名字(英文):");
            String firstName = in.nextLine().trim();
            
            // 截取姓氏前4位,长度不足4位则取全部内容
            String lastNamePart = lastName.length() >=4 ? lastName.substring(0,4) : lastName;
            // 截取名字前2位,长度不足2位则取全部内容
            String firstNamePart = firstName.length() >=2 ? firstName.substring(0,2) : firstName;
            // 自动生成10-99的两位随机数
            int randomNum = new Random().nextInt(90) + 10;
            
            // 拼接输出用户名
            String userName = lastNamePart + firstNamePart + randomNum;
            System.out.println("生成的用户名为:" + userName);
        }
    }
}

原有代码的问题说明

  • 前两次输入的姓氏、名字没有用变量接收,输入内容直接被丢弃没有参与后续逻辑
  • 需求要求程序自动截取字符、自动生成随机数,你编写的代码是让用户手动输入这三部分,完全不符合要求
  • 变量命名不符合Java小驼峰规范,首字母大写是类名的命名规则,不要用在普通变量上
  • 没有做边界兼容:如果用户输入的姓氏不足4位、名字不足2位时,硬编码截取会报字符串索引越界错误,修正后的代码做了长度判断兼容

内容的提问来源于stack exchange,提问作者Cyrille Xavier Andre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:15:03