package org.company.project.test;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class ArraysCopyAbc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = 0;
do{//自动生成5个或者7个字母的数组gene
System.out.println("请正确等级:");
n = sc.nextInt();
}while(n!=5 && n!=7);
char[] gene= generate(n);
System.out.println(Arrays.toString(gene));
while(true){//无限循环,不停提示,直到猜对或者exit
System.out.println("请猜测:");
String input=sc.next().trim().toUpperCase();
if("EXIT".equals(input)){
System.out.println("已退出");
break;
}
char[] inputs = input.toCharArray();
int[] arr = compare(inputs,gene);
if(arr[1]==inputs.length){
System.out.println("恭喜你,猜对了!");
break;
}else{
System.out.println("猜对对个数:"+arr[0]+" 猜对位置:"+arr[1]);
}
}
sc.close();
System.out.println(Arrays.toString(gene));
}
//自动生成不重复的char数组,n为数组长度
public static char[] generate(int n){
char[] cs = {'A','B','C','D','E','F','G','H','I','K','L','M','N','O','P','Q','R','S','T'};
boolean[] flag = new boolean[cs.length];
Random ra = new Random();
char[] ch = new char[n];
int index=0;
for(int i=0;i
do{
index = ra.nextInt(cs.length);
ch[i]=cs[index];
}while(flag[index]);
flag[index]= true;
}
return ch;
}
//比较2个数组,相同个数和相同位置分别存入arr[0],arr[1]
public static int[] compare(char[] a, char[] b){
int[] arr = new int[2];
for(int i=0;i
for(int j=0;j
if(a[i]==b[j]){
arr[0]++;
if(i==j){
arr[1]++;
}
break;
}
}
}
return arr;
}
}
[java] 自动生成字母不重复的数组,并且用户输入一串字母,然后2个数组比较
最新推荐文章于 2023-01-30 13:17:42 发布