Java数组和方法相关代码

95 阅读1分钟

一、数组指定格式打印

@Test
public void format(){
    //指定格式打印
    int[] arr = {1, 2, 3, 4, 5, 6};
    execute(arr);
}
public void execute(int [] arr){
    System.out.print("[");
    for (int i = 0; i < arr.length; i++) {
        if(i==arr.length-1){
            System.out.print(arr[i]);
        }else {
            System.out.print(arr[i]+",");
        }
    }
    System.out.print("]");
}

二、求数组中的最大值

@Test
public void max(){
    //求数组中的最大值
    int[] arr = {1, 2, 3, 4, 5, 6};
    int max = getMax(arr);
    System.out.println(max);
}

public int getMax(int [] arr){
    int max = arr[0];
    for (int i = 0; i < arr.length; i++) {
        if(arr[i]>max){
            max=arr[i];
        }
    }
    return max;
}

三、判断数组中是否存在对应的元素

@Test
public void whetherExist(){
    //判断数组中是否存在给出的元素
    int[] arr = {1, 2, 3, 4, 5, 6};
    boolean getresult = getresult(arr, 99);
    System.out.println(getresult);
}

public boolean getresult(int []arr,int number){
    for (int i = 0; i < arr.length; i++) {
        if(arr[i]==number){
            return true;
        }
    }
    return false;
}

四、根据淡旺季求出飞机票价格

 public static void main(String[] args) {
        //机票的价格按照淡季旺季、头等舱和经济舱进行收费,输入机票的原价、月份和头等舱或经济舱
        //按照规则:旺季(5-10)月头等舱 9折,经济舱8.5折,淡季(11月-来年4月)头等舱7折,经济舱6.5折

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入机票的原价:");
        int money = scanner.nextInt();
        System.out.println("请输入月份:");
        int month = scanner.nextInt();
        System.out.println("请输入头等舱还是经济舱:0 代表头等舱 1 代表经济舱");
         int grade = scanner.nextInt();

        //判断淡旺季
        if(month>=5&&month<=10){
//            money=  check(grade,money,0.9,0.85);

            //旺季
            money = getMoney(money, grade, 0.9, 0.85);

        }else if((month>=11&&month<=12)||(month>=1&&month<=4)){
            //淡季
//            money=  check(grade,money,0.7,0.65);
            money = getMoney(money, grade, 0.7, 0.65);
        }else{
            System.out.println("输入的月份不合法!");
        }

        System.out.println("您的机票价格为:"+money);

        }

    private static int getMoney(int money, int grade, double v, double v2) {
        if (grade == 0) {
            //头等舱
            money = (int) (money * v);
        } else if (grade == 1) {
            //经济舱
            money = (int) (money * v2);
        } else {
            System.out.println("输入的等级不对");
        }
        return money;
    }

五、范围内找质数

    @Test
    //在101~200范围内的质数
    public void rangePrimeNumber() {

        int count = 0;
        for (int i = 101; i < 201; i++) {
            boolean result = true;
            for (int j = 2; j < i; j++) {
                //判断是否被整除
                if (i % j == 0) {
                    result = false;
                    break;
                }
            }
            if (result) {
                System.out.println(i + "是一个质数");
                count++;
            }
        }
        System.out.println("质数有:" + count + "个");
    }
}

六、随机生成验证码

public class Captcha {
    public static void main(String[] args) {
        //定义一个方法随机产生一个5位数的验证码
        //格式为: 长度为5 前四位是大写字母或者小写字母最后一位是数字

        char[] chars = new char[52];
        for (int i = 0; i < chars.length; i++) {
            //ASCII码表
            if (i <= 25) {
                //添加小写字母
                chars[i] = (char) (97 + i);
            } else {
                //添加大写字母
                chars[i] = (char) (65 + i - 26);
            }
        }
        //定义一个字符串来记录最后的结果
        String result = "";
        //随机抽取4次数组中的索引
        Random random = new Random();
        for (int i = 0; i < 4; i++) {
            int randomIndex = random.nextInt(chars.length);
            result = result + chars[randomIndex];
        }
        //随机生成一个0~9的数字
        int number = random.nextInt(10);
        result += number;
        System.out.println("验证码:" + result);
    }
}

七、评委打分

public class JudgesScores {
    public static void main(String[] args) {
        //通过6为评委打分去除最高分和最低分求平均分即为选手最终分数
        int[] ints = addScore();
        int sum = 0;
        for (int i = 0; i < ints.length; i++) {
            sum += ints[i];
        }
        int max = getmax(ints);
        int min = getmin(ints);
        int avg = (sum - max - min) / (ints.length - 2);
        System.out.println("选手的最终得分为:" + avg);

    }

    //把分数添加进入数组中
    public static int[] addScore() {
        int[] scoreArr = new int[6];
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < scoreArr.length; ) {
            System.out.println("请评委" + (i + 1) + "给出分数:");
            int score = scanner.nextInt();
            if (score >= 0 || score < 101) {
                scoreArr[i] = score;
                i++;
            } else {
                System.out.println("输入分数有误请重新输入");
            }
        }
        return scoreArr;
    }

    //求数组中的最大值
    public static int getmax(int[] scoreArr) {
        int max = scoreArr[0];
        for (int i = 0; i < scoreArr.length; i++) {
            if (scoreArr[i] > max) {
                max = scoreArr[i];
            }
        }
        return max;
    }

    //求数组中的最小值
    public static int getmin(int[] scoreArr) {
        int min = scoreArr[0];
        for (int i = 0; i < scoreArr.length; i++) {
            if (scoreArr[i] < min) {
                min = scoreArr[i];
            }
        }
        return min;
    }
}

八、密码的加密与解密

public class PassWord {
    public static void main(String[] args) {
        //对系统密码进行加密操作
        //格式:每位数字加上5,在对10求余,最后将所有的数字反转
        int number = 1983;
        //将密码赋值给一个临时数据
        int temp = number;
        int count = 0;
        //判断密码的长度
        while (number != 0) {
            number = number / 10;
            count++;
        }
        //将密码进行拆分倒着存入数组当中
        int[] arr = new int[count];
        int index = arr.length - 1;
        while (temp != 0) {
            int ge = temp % 10;
            temp = temp / 10;
            arr[index] = ge;
            index--;
        }
        //加密操作

        //对数组中每个数字加5
        for (int i = 0; i < arr.length; i++) {
            arr[i] = arr[i] + 5;
        }
        //对数组中每个数字对10求余
        for (int i = 0; i < arr.length; i++) {
            arr[i] = arr[i] % 10;
        }
        //对数组中的数据进行反转
        for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
            int temp1 = arr[i];
            arr[i] = arr[j];
            arr[j] = temp1;
        }
        //解密操作

        //对数组进行反转
        for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
            int temp1 = arr[i];
            arr[i] = arr[j];
            arr[j] = temp1;
        }

        //由于加密是通过对10取余进行获取的所以解密需进行判断
        //在0~4之间加10在5~9之间数字不变
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > 0 && arr[i] < 5) {
                arr[i] = arr[i] + 10;
            }
        }
        //在减5
        for (int i1 = 0; i1 < arr.length; i1++) {
            arr[i1] = arr[i1] - 5;
        }
        //对数组中的元素进行拼接
        int result = 0;
        for (int i1 = 0; i1 < arr.length; i1++) {
            result = result * 10 + arr[i1];
        }
        System.out.println("原密码为:" + result);
    }


}