创建一个长度为1000的字符串数组,向数组中填充长度为2的随机字符串,并找出数组中的重复元素,并打印重复元素的个数
public class StrArray {
public static void main(String[] args) {
// 创建一个长度为1000的字符串数组
String[] strArray = new String[20];
// 定义一个字符串
String strs = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
// 定义一个空字符串存储产生的随机字符
String randomStr = "";
for (int i = 0; i < strArray.length; i++) {
// 生成一个随机数
int indexNum = new Random().nextInt(strs.length());
char s = strs.charAt(indexNum);
int indexNum1 = new Random().nextInt(strs.length());
char s1 = strs.charAt(indexNum1);
// 拼接随机获取的单个字符
randomStr = String.valueOf(s) + String.valueOf(s1);
// 给数组元素赋值
strArray[i] = randomStr;
}
// 输出数组
for (String str : strArray) {
System.out.print(str + "\t");
}
System.out.println();
//判断元素是否重复
for (String s1 : strArray) {
int repeat = 0;
for (String s2 : strArray) {
if (s1.equalsIgnoreCase(s2)) {
repeat++;
if (2 == repeat) {
// 当repeat==2的时候,就打了一个非己的重复字符串
putIntoDuplicatedArray(s1);
break;
}
}
}
}
System.out.printf("总共有 %d种重复的字符串%n", pos);
if (pos != 0) {
System.out.println("分别是:");
for (int i = 0; i < pos; i++) {
System.out.print(foundDuplicated[i] + " ");
}
}
}
static String[] foundDuplicated = new String[1000];
static int pos;
private static void putIntoDuplicatedArray(String s) {
for (int i = 0; i < pos; i++) {
if (foundDuplicated[i].equals(s))
return;
}
foundDuplicated[pos++] = s;
}
}