删除数组里含有a的元素,并且将null值放在后面

想去掉里面含有a的元素,并将null放在后面。放在后面就是往后移,其他值往左移

public static void main(String[] args) {
 2         //自定义的一个数组
 3         String[] strarray={"a","b","a","a","d","a"};
 4         int len=strarray.length;
 5         //由于数组长度是固定的,获得一次长度就可以进行循环
 6         for (int i = 0; i < len; i++) {
 7             //当数组里面遇到a字符就进行下面的操作
 8             if ("a".equals(strarray[i])) {
 9                 //这一行加不加无所谓
10                 strarray[i]=null;
11                 for (int j = i; j < len-1; j++) {
12                     //将后一个值传给前一个值,整体左移
13                     strarray[j]=strarray[j+1];
14                 }
15                 strarray[len-1]=null;//元素最后一个得为null
16                 i--;//因为i一直往前加,没有注意后面元素是两个a的情况
17             }
18         }
19         System.out.println(Arrays.toString(strarray));

除了上面的方法,其实还可以用一个新数组来进行操作

String[] strarray={"a","b","a","a","d","a"};
        int len=strarray.length;
        String[] array2=new String[len];
        int index=0;
        for(int i=0;i<len;i++){
            String s=strarray[i];
            if(!"a".equals(s)){
                array2[index]=s;
                index++;
            }
        }
        System.out.println(Arrays.toString(array2));
posted @ 2022-10-13 15:14  Liku007  阅读(50)  评论(2编辑  收藏  举报