#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

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

因为初始化字符串数组中的元素都是null,你需要先将null替换成--

s[i] = s1