JAVA刷题练习2

01、分析并完成以下需求:

    1.定义一个方法,实现将指定int数组中的索引为偶数的元素值增加1
    2.假如数组为{1,2,3,4,5,6,7},那么调用方法后,数组中的元素变为{2,2,4,4,6,6,8}
    3.main方法中,调用方法测试结果

方法一:

package com.itheima;
//01、分析并完成以下需求:
//    1.定义一个方法,实现将指定int数组中的索引为偶数的元素值增加1
//    2.假如数组为{1,2,3,4,5,6,7},那么调用方法后,数组中的元素变为{2,2,4,4,6,6,8}
//    3.main方法中,调用方法测试结果
public class Lian01 {
    public static void main(String[] args) {
        //定义一个数组
        int[]arr={1,2,3,4,5,6,7};
        //调用数组,定义一个变量接收
        int[] shuzu = Arr(arr);
        //循环遍历数组,并输出数组值
        System.out.print("{");
        for (int i = 0; i < shuzu.length; i++) {
            System.out.print(shuzu[i]+" ");
        }
        System.out.print("}");
    }
//1.定义一个方法,实现将指定int数组中的索引为偶数的元素值增加1
    public static int[] Arr(int[]arr){
        //循环遍历数组
        for (int i = 0; i < arr.length; i++) {
            //判断数组下标是都为偶数
            if(i%2==0){
                //为偶数的数值加1
                arr[i]+=1;
            }
        }
        return arr;
    }
}

方法二:优化--->不定义返回值

                          Arrays.toString(arr):直接输出以数组的格式,不需要再循环遍历数组

package com.itheima;

import java.util.Arrays;

//01、分析并完成以下需求:
//    1.定义一个方法,实现将指定int数组中的索引为偶数的元素值增加1
//    2.假如数组为{1,2,3,4,5,6,7},那么调用方法后,数组中的元素变为{2,2,4,4,6,6,8}
//    3.main方法中,调用方法测试结果
public class Lian01 {
    public static void main(String[] args) {
        //定义一个数组
        int[]arr={1,2,3,4,5,6,7};
        //调用数组
        Arr(arr);
    }
//1.定义一个方法,实现将指定int数组中的索引为偶数的元素值增加1
    public static void  Arr(int[]arr){
        //循环遍历数组下标为偶数的数值
        for (int i = 0; i < arr.length; i+=2) {
                //为偶数的数值加1
                arr[i]+=1;
        }
        //Arrays.toString(arr):直接输出以数组的格式
        System.out.println(Arrays.toString(arr));
    }
}

02、分析并完成以下需求:

    1.定义方法getMax()获取数组最大值、getMin()获取最小值、getAvg()获取元素平均值
    2.在main方法中,生成一个长度为10的随机数组arr,元素范围是[1-100]
    3.分别调用三个方法,传递该数组,接收返回值并打印

package com.itheima;

import java.util.Random;

//02、分析并完成以下需求:
//    1.定义方法getMax()获取数组最大值、getMin()获取最小值、getAvg()获取元素平均值
//    2.在main方法中,生成一个长度为10的随机数组arr,元素范围是[1-100]
//    3.分别调用三个方法,传递该数组,接收返回值并打印
public class Lian02 {
    public static void main(String[] args) {
        //生成一个长度为10的随机数组arr,元素范围是[1-100]
        Random r = new Random();
        //定义一个长度为10的动态数组
        int[] arr = new int[10];
        //循环随机生成1-100的数组值
        for (int i = 0; i < arr.length; i++) {
            arr[i] = r.nextInt(100) + 1;
            //打印数组值
            System.out.print(arr[i] + " ");
        }
        System.out.println();
        System.out.println("最大值是:"+getMax(arr));
        System.out.println("最小值是:"+getMin(arr));
        System.out.println("平均值是:"+getAvg(arr));

    }

    //    定义方法getMax()获取数组最大值
    public static int getMax(int[] arr) {
        //定义一个变量接收数组最大值
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            //循环判断数组值,将更大的值赋给max
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        //返回数组最大值max
        return max;
    }

    //    定义方法getMin()获取最小值
    public static int getMin(int[] arr) {
//定义一个变量接收数组最小值
        int min = arr[0];
        for (int i = 1; i < arr.length; i++) {
            //循环判断数组值,将更小的值赋给min
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        //返回数组最小值min
        return min;
    }

    //    定义方法getAvg()获取元素平均值
    public static int getAvg(int[] arr) {
        //定义求和变量sum
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return  sum / arr.length;
    }
}

03、分析并完成以下需求:

    1.定义一个方法,实现交换int数组中,两个索引上的元素值,并调用方法,查看运行效果

附加条件:用键盘录入两个索引值
    例如,数组为{11,22,33,44,55,66},交换索引1和5位置上的元素,结果为{11,66,33,44,55,22}

重点:

Arrays.toString(brr)直接打印数组brr中内容
package com.itheima;

import java.util.Arrays;
import java.util.Scanner;

//03、分析并完成以下需求:
//    1.定义一个方法,实现交换int数组中,两个索引上的元素值,并调用方法,查看运行效果
//附加:键盘录入两个索引值
//    例如,数组为{11,22,33,44,55,66},交换索引1和5位置上的元素,结果为{11,66,33,44,55,22}
public class Lian03 {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = {11, 22, 33, 44, 55, 66};
        //键盘录入要调换的索引值
        Scanner sc = new Scanner(System.in);
        //提示输入
        System.out.println("请输入要交换的第一个索引值");
        int num1 = sc.nextInt();
        //提示输入
        System.out.println("请输入要交换的第二个索引值");
        int num2 = sc.nextInt();
        //调用方法,定义一个新数组接收
        int[]brr = Arr(arr,num1,num2);
       /* //循环遍历数组brr
        for (int i = 0; i < brr.length; i++) {
            System.out.print(brr[i]+" ");
        }*/
        //Arrays.toString(brr)直接打印数组brr中内容
        System.out.println(Arrays.toString(brr));
    }

    //定义一个方法,实现交换int数组中,两个索引上的元素值,并调用方法,查看运行效果
    public static int[] Arr(int[] arr,int num1,int num2) {
        //定义第三方变量
        int temp = 0;
        //数组内容置换
            temp = arr[num1];
            arr[num1] = arr[num2];
            arr[num2] = temp;

        return arr;
    }
}

04、分析并完成以下需求: 
    录入字符串:sc.next();
    将字符串转为字符数组:cahr[] arr = str.toCharArray();
    字母字符、数字字符在码表中是连续出现的,a-z:97-113

    1.提示用户键盘录入一个包含数字和字母的字符串(不用做是否包含数字和字母的判断)
    2.遍历字符串,分别筛选出数字和字母,按照数字在前字母在后的规则,组成一个新的字符串,并打印

package com.itheima;

import java.util.Arrays;
import java.util.Scanner;

//04、分析并完成以下需求:
//	录入字符串:sc.next();
//	将字符串转为字符数组:cahr[] arr = str.toCharArray();
//    字母字符、数字字符在码表中是连续出现的,a-z:97-113
//    1.提示用户键盘录入一个包含数字和字母的字符串(不用做是否包含数字和字母的判断)
//    2.遍历字符串,分别筛选出数字和字母,按照数字在前字母在后的规则,组成一个新的字符串,并打印
public class Lian04 {
    public static void main(String[] args) {
//录入字符串
        Scanner sc = new Scanner(System.in);
        //提示用户键盘录入一个包含数字和字母的字符串
        System.out.println("请输入一个包含数字和字母的字符串:");
        String str = sc.next();
        //将字符串转为字符数组
        char[]arr=str.toCharArray();
        System.out.println(Arrays.toString(arr));
        //定义一个变量,接收字母
        String word = "";
        //定义一个变量,接收数字
        String num = "";
        //循环遍历字符数组
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]>=97&&arr[i]<=122){
                //字母累加,因为是字符型,会直接叠加到后面
                word+=arr[i];
            }else{
                //数字累加
                num+=arr[i];
            }
        }
        //输出数字连接字母
        System.out.println(num+word);
    }

}

05、分析并完成以下需求:
    截取字符串方法:
            String newStr = str.subString(起始索引);//默认到结束
            String newStr = str.subString(起始索引,结束索引-1);
    1.提示用户输入手机号码
    2.电话号码必须为132、134、135开头,必须为11位
    3.通过代码逻辑进行修改,要求中间四位使用*代替
    示例:用户输入13279440986 控制台打印:132****0986

方法一:

方法二:字符串可以直接判断长度,不用转换为字符数组在进行判断

package com.itheima;

import java.util.Scanner;

//05、分析并完成以下需求:
//	截取字符串方法:
//			String newStr = str.subString(起始索引);//默认到结束
//			String newStr = str.subString(起始索引,结束索引-1);
//	1.提示用户输入手机号码
//	2.电话号码必须为132、134、135开头,必须为11位
//    3.通过代码逻辑进行修改,要求中间四位使用*代替
//    示例:用户输入13279440986 控制台打印:132****0986
public class Lian05 {
    public static void main(String[] args) {
        //提示用户输入手机号
        System.out.println("请输入您的手机号码:");
        Scanner sc = new Scanner(System.in);
        //电话号码必须为132、134、135开头,必须为11位
        //定义一个字符串变量进行接收号码
        String num = sc.next();
        //截取号码前三位,对号码进行判断,从0开始不包括3
        String newStr = num.substring(0, 3);
        if (!newStr.equals("132")&&!newStr.equals("134")&&!newStr.equals("135")  ) {
            System.out.println("您输入的号码不符合要求,请重新输入");
        }
        //将字符串转为字符数组
        char[] arr = num.toCharArray();
        //对号码长度进行判断
        if (arr.length != 11) {
            System.out.println("sorry,您的电话长度不符合要求,请重新输入");
        }
        //定义三个变量,循环遍历数组,将正确的字符号码拼接位字符串
        //前三位
        String num1 = "";
        //中间四位
        String num2 = "";
        //后四位
        String num3 = "";
        for (int i = 0; i < arr.length; i++) {
            if (i < 3) {
                num1 += arr[i];
            } else if (i < 7 && i >= 3) {
                num2 += "*";
            }else{
                num3+=arr[i];
            }
        }
        System.out.println(num1+num2+num3);
    }
}
package com.itheima;

import java.util.Scanner;

//05、分析并完成以下需求:
//	截取字符串方法:
//			String newStr = str.subString(起始索引);//默认到结束
//			String newStr = str.subString(起始索引,结束索引-1);
//	1.提示用户输入手机号码
//	2.电话号码必须为132、134、135开头,必须为11位
//    3.通过代码逻辑进行修改,要求中间四位使用*代替
//    示例:用户输入13279440986 控制台打印:132****0986
public class Lian05 {
    public static void main(String[] args) {
        //提示用户输入手机号
        System.out.println("请输入您的手机号码:");
        Scanner sc = new Scanner(System.in);
        //电话号码必须为132、134、135开头,必须为11位
        //定义一个字符串变量进行接收号码
        String num = sc.next();
        //截取号码前三位,从0开始不包括3
        String start = num.substring(0, 3);
        //截取号码后四位
        String end = num.substring(7);
        //对号码进行判断,长度不对直接报错
        if (num.length() == 11 || start.equals("132") || start.equals("134") || start.equals("135")) {
            //定义字符串,接收拼接后的号码
            String number= start +"****" + end;
            System.out.println(number);
        } else {
            System.out.println(" sorry,您的电话长度不符合要求,请重新输入");
        }

    }
}

06、分析并完成以下需求:

    1.提示用户录入一个字符串,要求字符串中必须存在字母(定义方法)
    2.不符合要求:提示录入有误!重新录入
    3.符合要求:判断字符串中大写字母出现次数并打印(定义方法)

package com.itheima;

import java.util.Arrays;
import java.util.Scanner;

//06、分析并完成以下需求:
//    1.提示用户录入一个字符串,要求字符串中必须存在字母(定义方法)
//    2.不符合要求:提示录入有误!重新录入
//    3.符合要求:判断字符串中大写字母出现次数并打印(定义方法)
public class Lian06 {
    public static void main(String[] args) {
        panDuan();
    }

    //提示用户录入一个字符串,要求字符串中必须存在字母(定义方法)
    public static void panDuan() {
        //定义一个计数器
        int count = 0;
        //提示用户输入一个字符串
        System.out.println("请输入一个带字母的字符串:");
        Scanner sc = new Scanner(System.in);
        //键盘录入一个字符串
        String str = sc.next();
        //将字符串转化为字符数组
        char[] arr = str.toCharArray();
        //输出数组,能直观看见
        System.out.println(Arrays.toString(arr));
        //遍历数组,判断是否含有字母
        for (int i = 0; i < arr.length; i++) {
            //char c = str.charAt(i):获取字符串str中的字母,赋值给字符遍历c
            char c = str.charAt(i);
            if (c < 'a' && c > 'z' || c < 'A' && c > 'Z') {
                //不含字符,报错
                System.out.println("您输入的字符串不符合要求");
                break;
            } else if (c >= 'A' && c <= 'Z') {
                count++;
            }
        }
        System.out.println(count);
    }


}

07、分析并完成以下需求:

    1.我国的居民身份证号码,由17位数字本体码,和1位数字校验码组成
    2.请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果
    规则为:号码为18位,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X

package com.itheima;

import java.util.Scanner;

//07、分析并完成以下需求:
//
//    1.我国的居民身份证号码,由17位数字本体码,和1位数字校验码组成
//    2.请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果
//    规则为:号码为18位,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X
public class Lian11 {
    public static void main(String[] args) {
        //键盘输入
        System.out.println("请输入您的身份证号:");
        String str = new Scanner(System.in).next();
        //判断是否合法
        boolean result = cordNum(str);
        System.out.println(result);

    }

    //判断18位身份证号,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X
    public static boolean cordNum(String str) {
        //1.判断号码是不是18位
        if (str.length() != 18) {
            return false;
        }
        //2.不能以0开头
        if (str.startsWith("0")) {
            return false;
        }
        //3.前十七位只能是数字
        for (int i = 0; i < str.length(); i++) {
            //转换为字符4
            char c = str.charAt(i);
            //对字符进行判断
            if (c < '0' || c > '9') {
                return false;
            }
        }
        //4.判断第十八位
        char c = str.charAt(17);
        if (c < '0' || c > '9' &&c != 'X') {
            return false;
        }
        return true;
    }
}

方法二:略麻烦

package com.itheima;
//07、分析并完成以下需求:
//
//    1.我国的居民身份证号码,由17位数字本体码,和1位数字校验码组成
//    2.请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果
//    规则为:号码为18位,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X

import java.util.Scanner;

public class Lian07 {
    public static void main(String[] args) {
        Card();
    }

    //定义方法
    public static void Card() {
        //提示用户输入身份证号
        System.out.println("请输入您的个人身份证号:");
        Scanner sc = new Scanner(System.in);
        //键盘录入字符串
        String cordnum = sc.next();
        if(cordnum.length()!=18){
            System.out.println("您输入的身份证号长度不正确");
        }
        //截取最后一位判断
        String end = cordnum.substring(17);
        //将字符串cordnum转化为字符数组arr
        char[] arr = cordnum.toCharArray();
        //遍历数组,判断身份证号是否合法
        for (int i = 0; i < arr.length; i++) {
            //将字符串总的字符赋给字符c,用来进行判断
            char c = cordnum.charAt(i);
            //判断首字符
            if (arr[0] == 0) {
                System.out.println("您输入的身份证号格式不正确");
                break;
            } else if (c >= '0' && c <= '9') {
                System.out.print(c);
            }else if(arr[17]>='A'||arr[17]>='Z'){
                System.out.println(arr[17]);
            }else{
                System.out.println("您输入的身份证号格式不正确");
                break;
            }
        }
    }

}

08、分析并完成以下需求:

    1.定义一个int类型数组{22,56,8,97,99,46,53,2,13},用自己的方式最终实现:
    2.奇数放在数组的左边,偶数放在数组的右边(可以创建其他数组,不必须在原数组中改变)

package com.itheima;

import java.util.Arrays;

//08、分析并完成以下需求:
//
//	1.定义一个int类型数组{22,56,8,97,99,46,53,2,13},用自己的方式最终实现:
//	2.奇数放在数组的左边,偶数放在数组的右边(可以创建其他数组,不必须在原数组中改变)
public class Lian08 {
    public static void main(String[] args) {
        //定义一个静态数组
        int[] arr = {22, 56, 8, 97, 99, 46, 53, 2, 13};
        //定义一个新数组接方法的调用结果
        int[]changeArr = changeArr(arr);
        //定义字符串s,直接打印方法调用的数组
        String s = Arrays.toString(changeArr);
        System.out.println(s);
    }
    public static int[] changeArr(int[]arr){
        //1.创建新数组
        int[]newArr = new int[arr.length];
        //2.从左边开始赋值
        int left =0;
        //3.右边
        int right=arr.length-1;
        //4.给新数组赋值
        for (int i = 0; i < arr.length; i++) {
          if(arr[i]%2==0){
              //偶数
              newArr[right]=arr[i];
              right--;
          }  else{
              //奇数
              newArr[left]=arr[i];
              left++;
          }
        }
        //返回打乱重排的数组
        return newArr;
    }
}

09、分析并完成以下需求:

    1.假设有一个长度为5的数组,数组元素通过键盘录入,如下所示:
        int[] arr = {1,3,-1,5,-2};
    2.要求:
        创建一个新数组newArr[]
        新数组中元素的存放顺序与原数组中的元素逆序
        并且如果原数组中的元素值小于0在新数组中按0存储
        最后输出原数组和新数组中的内容

package com.itheima;

import java.util.Arrays;
import java.util.Scanner;

//09、分析并完成以下需求:
//	1.假设有一个长度为5的数组,数组元素通过键盘录入,如下所示:
//		int[] arr = {1,3,-1,5,-2};
//	2.要求:
//		创建一个新数组newArr[]
//		新数组中元素的存放顺序与原数组中的元素逆序
//		并且如果原数组中的元素值小于0在新数组中按0存储
//		最后输出原数组和新数组中的内容
public class Lian09 {
    public static void main(String[] args) {
        //1.定义一个长度为5,键盘录入的数组
        int[]arr=new int[5];
        Scanner sc = new Scanner(System.in);
        //提示输入
        System.out.println("请输入数组内容");
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println(Arrays.toString(arr));

        //2.创建一个新数组newArr[]
        int []newArr= new int[5];
        //定义一个变量为数组newArr索引
        int j = 0;
        //循环遍历数组arr
        for (int i = arr.length-1; i >=0; i--) {
            newArr[j]=arr[i];
            j++;
        }
        //循环遍历数组newArr,对内容进行判断
        for (int i = 0; i < newArr.length; i++) {
            if(newArr[i]<0){
                newArr[i]=0;
            }
        }
        System.out.println(Arrays.toString(newArr));
    }
}

10、分析并完成以下需求:

    1.将数字{3,2,11,22,44,55,66...}保存到一个长度为10的数组中
    2.定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复)
    3.给新数组的元素赋值
    4.求新数组所有元素的和     

package com.itheima;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

//10、分析并完成以下需求:
//    1.将数字{3,2,11,22,44,55,66...}保存到一个长度为10的数组中
//    2.定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复)
//    3.给新数组的元素赋值
//    4.求新数组所有元素的和
public class Lian10 {
    public static void main(String[] args) {
        //1.定义一个长度为十的数组,去储存数字
        int[] arr = new int[10];
        //循环键盘录入数字
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println(Arrays.toString(arr));
        //2.定义一个新数组,长度为3,取出原来数组中随机三个元素
        int[] brr = new int[3];
        Random r =new Random();
        for (int i = 0; i < brr.length; i++) {
            //随机获取数组arr索引对应的值,并赋值给新数组
            brr[i]=r.nextInt(arr[r.nextInt(10)]);
        }
        System.out.println("新数组元素有:"+Arrays.toString(brr));
        //定义一个求和变量sum
        int sum=0;
        //循环遍历新数组求和
        for (int i = 0; i < brr.length; i++) {
            sum+=brr[i];
        }
        System.out.println("新数组元素和为:"+sum);
    }

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值