xiaogaotongxue__ 2022-06-15 11:07 采纳率: 73.3%
浏览 24
已结题

#java数组#为什么会给我新加一个null

问题遇到的现象和发生背景

将数组打印出来的时候,会多出来一个“null”

问题相关代码,请勿粘贴截图
public class ceshi02 {
    public static String[] random(int n,int L) {
        String[] s = new String[n];
        //HashSet H = new HashSet();
        Random r = new Random();
        for(int i=0; i<n;i++) {
            String s1 ="--";//这个“--”是为了把null和要输出的值区分开来
            for(int j=0; j<L;j++) {
                int a=r.nextInt(10);//随机生成0-9的数
                int b=r.nextInt(26);//随机生成0-25的数
                char c=(char)(65+b);//随机生成大写字母
                char d=(char)(97+b);//随机生成小写字母
                if(r.nextInt(9)>5) {//随机生成一个字符
                    s1+=a;//添加数字到字符串
                }else {
                    s1+=r.nextInt(9)>5?c:d;//随机添加字母到字符串
                }
                
            }
            s[i]+=s1;//将字符串放入到数组中
        }
        return s;
        
    }
    public static void main(String[] args) {
        String[] arr = random(5,8);
        for(int i=0;i<arr.length;i++) {
            System.out.println(arr[i]);
        }
        
    }
}

运行结果及报错内容

运行结果:
null--TU40i3mX
null--C313r5t7
null--XVounB9h
null--yQrVbUq1
null--del008it

我的解答思路和尝试过的方法
我想要达到的结果

期望结果:
--TU40i3mX
--C313r5t7
--XVounB9h
--yQrVbUq1
--del008it

  • 写回答

3条回答 默认 最新

  • 陈脩 2022-06-15 11:24
    关注

    字符串数组初始化后中的值就是null, s[i]+=s1;这句就是null拼接s1以后放入到数组中!解决这个问题需要将
    s[i]+=s1;这句改为 s[i]=s1;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月23日
  • 已采纳回答 6月15日
  • 创建了问题 6月15日

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!