A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

分析以下需求,并用代码实现
        1.创建两个长度为10的数组,数组内元素为随机生成的、不重复的 1-100之间的整数,
        2.定义一个方法,传入两个数组,函数中将两个数组不同的元素拼接成一个字符串,并且将该字符串以及字符串的长度输出到控制台上;
                如果没有则输出"对不起两个数组的所有元素均相同"
答案:
import java.util.Random;

public class Homework5 {
        public static void main(String[] args) {

                int[] arr1 = new int[10];
                int[] arr2 = new int[10];
                giveValue(arr1);
                giveValue(arr2);
                printArry(arr1);
                printArry(arr2);

                getStringLength(arr1, arr2);
        }
//拼接成字符串并获取字符串长度的方法
        private static void getStringLength(int[] arr1, int[] arr2) {
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < arr1.length; i++) {
                        for (int j = 0; j < arr2.length; j++) {
                                //如果遇到相等的就把这两个索引位置的元素都赋值成0
                                if (arr1[i] == arr2[j]) {
                                        arr1[i] = 0;
                                        arr2[j] = 0;
                                }
                        }
                }
                for (int i = 0; i < arr1.length; i++) {
                        //如果索引位置上的值不是0就进行拼接
                        if (arr1[i] != 0) {
                                sb.append(arr1[i]);
                        }
                        //同上,如果索引位置上的值不是0就进行拼接
                        if (arr2[i] != 0) {
                                sb.append(arr2[i]);
                        }
                }
                String s = sb.toString();
                int length = s.length();
                System.out.println("字符串是:" + s);
                if (length != 0) {
                        System.out.println("字符串长度是:" + length);
                } else {
                        System.err.println("对不起两个数组的所有元素均相同");
                }
        }
//打印数组各元素的方法
        public static void printArry(int[] arr1) {
                System.out.print("[");
                for (int i = 0; i < arr1.length; i++) {
                        if (i == arr1.length - 1) {
                                System.out.println(arr1[i] + "]");
                        } else {
                                System.out.print(arr1[i] + ",");
                        }
                }
        }
//为数组赋值的方法
        private static void giveValue(int[] arr1) {
                Random r = new Random();
                for (int i = 0; i < arr1.length; i++) {
                        boolean b = true;
                        int a = r.nextInt(100) + 1;

                        for (int j = 0; j < i; j++) {
                                if (a == arr1[j]) {
                                        b = false;
                                        i--;
                                        break;
                                }
                        }
                        if (b) {
                                arr1[i] = a;
                        }
                }
        }

}

运行结果:
[56,84,81,99,76,41,35,59,18,96]  ---随机赋值的,每次运行结果不同
[58,68,31,34,17,40,26,43,94,99]
字符串是:565884688131347617414035265943189496
字符串长度是:36



2 个回复

倒序浏览
回复 使用道具 举报
感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马