分析以下需求,并用代码实现
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
|
|