一维数组练习

1,模拟在一副牌中,抽取第1张,第5张,第50张扑克牌。

/**
 *模拟在一副牌中,抽取第1张,第5张,第50张扑克牌。
 */
public class Test03 {

    public static void main(String[] args) {
        String[] str = new String[62];
        String[] str1 = {"黑桃", "红桃", "梅花", "方片"};
        String[] str2 = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", };
        int count = 0;
        for (int i = 0; i < str1.length; i++) {
            for (int j = 0; j < str2.length; j++) {
                str[count] = str1[i]+str2[j] ;
                count++;
                System.out.print(count + " ");
            }
        }
        System.out.println(str[0] + " " + str[4] + " " + str[49]);
    }

}

2,复制数组元素进入新数组,在数组的指定下标插入数据,后面的数字依次移动

/**
 * 复制数组元素进入新数组
 * 在数组的指定下标插入数据,后面的数字依次移动
 */
public class TestArrMove {

    public static void main(String[] args) {
        int[] arrs = {0, 1, 2, 3, 4};
        Scanner input = new Scanner(System.in);
        System.out.println("输入要插入的数字");
        int num = input.nextInt();
        System.out.println("输入要插入的数组下标");
        int index = input.nextInt();
        int[] newArrs = new int[arrs.length + 1];
        //复制数组元素进入新数组
        for (int i = 0; i < arrs.length; i++) {
            newArrs[i] = arrs[i];
        }
        //依次后移
        for (int i = newArrs.length - 1; i > index; i--){
            newArrs[i] = newArrs[i - 1];
        }
        //把从键盘读取的数字,插入到指定索引的位置
        newArrs[index] = num;
        //遍历新数组
        for (int i = 0; i < newArrs.length; i++) {
            System.out.print(newArrs[i]);
        }
    }

}

3,统计字符

字符数组:{'a','l','f','m','f','o','b','b','s','n'},统计每个字符出现的次数并打印到控制台。

开发提示:将数字强制转换,根据ASCII码表转换为字符。可以定义长度26的数组,每个元素,对应去保存每种字符的出现次数,比如0索引保存a的次数,1索引保存b的次数,以此类推。

public class Test04 {

    public static void main(String[] args) {
        char[] chars = {'a','l','f','m','f','o','b','b','s','n'};
        int[] arr = new int[26];
        for (int i = 0; i < chars.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                if (j == chars[i] - 97){
                    //对应索引的字母每出现一次,就再该索引对应的值下面++
                    arr[j] += 1;
                }
            }
        }
        //System.out.println('a' - 97);
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != 0){
                System.out.println((char)(i+97) + "--" + arr[i]);
            }
        }
    }

}

4,判断数组中的元素值是否对称.

开发提示: 数组中元素首尾比较。

public class Test06 {

    public static void main(String[] args) {
//        int[] arr = {1, 2, 3, 4, 3, 2, 1};
        int[] arr = {1, 2, 3, 4, 5, 2, 1};
        boolean flag = true;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != arr[arr.length - 1 - i]){
                flag = false;
            }
        }
        if (flag){
            System.out.println("是否对称:true");
        }else {
            System.out.println("是否对称:false");
        }

    }

}

5,比较两个数组内容是否完全一致。

开发提示:长度一致,内容一致,定义为完全一致。

public class Test07 {

    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3, 4, 3, 2, 1};
        int[] arr2 = {1, 2, 3, 4, 3, 2, 1};
        boolean flag = true;
        if (arr1.length != arr2.length){
            flag = false;
        }
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]){
                flag = false;
                break;
            }
        }
        if (flag){
            System.out.println("是否一致" + true);
        }else {
            System.out.println("是否一致" + false);
        }

    }

}

6,随机验证码。

随机生成十组六位字符组成的验证码。验证码由大小写字母、数字字符组成。

开发提示: 使用字符数组保存原始字符,利用Random类生成随机索引

public class Test12 {

    public static void main(String[] args) {
        String[] arr = new String[10];
        Random rand = new Random();
        for (int i = 0; i < arr.length; i++) {
            arr[i] = "";
            for (int j = 0; j < 6; j++) {
                int num;
                while(true){
                    num = rand.nextInt(123);
                    //数字[48,57]  大写字母[65,90]  小写字母[97,122]
                    if(num>=48 && num<=57){
                        break;
                    }else if(num>=65 && num<=90){
                        break;
                    }else if(num>=97 && num<=122){
                        break;
                    }
                }
                arr[i] += (char)num;
            }
        }

        for (int i = 0; i < arr.length; i++) {
            System.out.println("随机验证码:" + arr[i]);
        }
    }

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值