黑马程序员技术交流社区

标题: 作业题,与老师讲的方法不一样,分享一下 [打印本页]

作者: yangxiaosa    时间: 2017-3-15 21:23
标题: 作业题,与老师讲的方法不一样,分享一下
分析以下需求,并用代码实现
        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




作者: 雪飞舞舞    时间: 2017-3-15 23:57
学习了…………

作者: 935539    时间: 2017-3-16 00:14
感谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2