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

#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 yolov5中的val测试集训练时数量变小问题
  • ¥15 MPLS/VPN实验中MPLS的配置问题
  • ¥15 materialstudio氢键计算问题
  • ¥15 已知隐函数其中一个变量的,求另外一个变量
  • ¥15 echarts图表制作
  • ¥15 halcon根据玻璃面板纹路取区域
  • ¥15 HFSS设计小型化180度耦合器
  • ¥15 使用CInternetSession,CHttpFile读取网页文件时有些电脑上会卡住怎么办?
  • ¥15 水下机器人的半物理仿真研究
  • ¥15 微服务假死,一段时间后自动恢复,如何排查处理