分析以下需求,并用代码实现:
1.创建两个长度为10的数组,数组内元素为随机生成的、不重复的 1-100之间的整数。
2.定义一个方法,传入两个数组,方法中将两个数组不同的元素拼接成一个字符串,并且将该字符串以及字符串的长度输出到控制台上; 如果没有则输出"对不起两个数组的所有元素均相同"
**import java.util.Arrays;
import java.util.Random;
public class Test {
public static void main(String[] args) {
Random r = new Random();
int[] arr1 = new int[10];
int[] arr2 = new int[10];
//随机生成10个不重复的数组,存入数组1
for (int i = 0; i < arr1.length; i++) {
boolean flag = true;
int a = r.nextInt(100) + 1;
for (int j = 0; j < arr1.length; j++) {
if (a == arr1[j]) {
flag = false;
}
}
if (flag == true) {
arr1[i] = a;
} else {
i--;
}
}
//随机生成10个不重复的数组,存入数组2
for (int i = 0; i < arr2.length; i++) {
boolean flag = true;
int a = r.nextInt(100) + 1;
for (int j = 0; j < arr2.length; j++) {
if (a == arr2[j]) {
flag = false;
}
}
if (flag == true) {
arr2[i] = a;
} else {
i--;
}
}
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
getLength(arr1, arr2);
}
//定义一个方法,传入两个数组,方法中将两个数组不同的元素拼接成一个字符串,并且将该字符串以及字符串的长度输出到控制台上;
//如果没有则输出"对不起两个数组的所有元素均相同"
//这是一个辅助方法,传入一个数组,一个元素,判断这个元素在数组中是否出现
public static boolean getFlag(int[] arr, int num) {
//判断该元素是否在数组中出现
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
return true;//出现过返回true
}
}
return false;//没出现过返回flase
}
public static void getLength(int[] arr1, int[] arr2) {
StringBuilder sb = new StringBuilder();//这是个将数据转换成字符串的对象
for (int i = 0; i < arr1.length; i++) {
//调用那个方法,将arr1中的每一个元素跟 arr2对比,返回true或者flase
boolean flag = getFlag(arr2, arr1[i]);
//返回的是flase,也就是---arr1[]中的元素在arr2[]中没出现过
if (flag == false) {
//打印arr1元素
sb.append(arr1[i]).toString();//将数据转换成字符串
}
}
System.out.print(sb);//输出该字符串
//跟上边一样,就是把arr2的元素拿出来过跟arr1对比,打印arr2中的元素
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < arr2.length; i++) {
boolean flag = getFlag(arr1, arr2[i]);
if (flag == false) {
sb2.append(arr2[i]).toString();
}
}
System.out.println(sb2);
System.out.println("字符串长度为:" + (sb.length() + sb2.length()));//打印长度
if ((sb.length() + sb2.length()) == 0) {//如果长度为0,没输出,都相同!!
System.out.println("对不起两个数组的所有元素均相同");
}
}
}**
这里是运行截图: