JavaSE|一维数组练习

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,统计字符 【JavaSE|一维数组练习】字符数组:{'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]); } }}


    推荐阅读