在数组中自由插入数据

2020-07-11  本文已影响0人  魔女小姐的猫
package com.example.arr;


import java.util.Scanner;


public class AddArr {
    public static void main(String[] args) {
        String[] arr = {"1","2","3","4","5",""};
        bianli(arr);
        Scanner scanner = new Scanner(System.in);
        System.out.println();
        System.out.println("请输入在第几个下标添加");
        int i = scanner.nextInt();
        System.out.println("请输入添加的数据");
        String next = scanner.next();
        System.out.println("在第"+i+"个下边后添加"+next);
        add(arr,i,next);
        bianli(arr);
        //释放资源
        scanner.close();
    }

    public static void add(String[] arr,int index,String next){
        if (index>arr.length||index<0){//判断如果下标大于数组长度,或者小于0,则会下标越界
            System.out.println("下标越界");
        } else if (index == arr.length-1) {//判断如果下标等于数组长度,则直接给数组最后一位赋值
            arr[index] = next;
        } else if (index == 0) {//判断如果下标等于0,则所以数组的值往后移动一位,给下标为0 的数组赋值
            for (int i = arr.length - 1; i >= index; i--) {
                if (i == 0) {
                    arr[i] = next;
                    break;
                }
                arr[i] = arr[i - 1];
            }
        } else {//判断如果下标不在数组的2端,则将下标之后的数值往后移动一位,
            for (int i = arr.length - 1; i >= index; i--) {
                arr[i] = arr[i - 1];
            }
            //在给这个下标赋值
            arr[index] = next;
        }
    }

    //遍历数组的方法
    public static void bianli(String[] arr ){
        for (String a:
             arr) {
            System.out.print(a+"  ");
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读