Java 如果用户输入等于数组的字符,如何检查用户输入 while(…){ 如果(!(input>='A'&&input

Java 如果用户输入等于数组的字符,如何检查用户输入 while(…){ 如果(!(input>='A'&&input,java,arrays,Java,Arrays,我建议使用Java集而不是数组,那么代码会更快更有效,因为在数组上搜索的复杂性是O(N),但在使用Read Balck tree的哈希集中是O(log(N)),请阅读更多关于和的信息 Set randomWordToGuess=new HashSet(); Set playerGuess=new HashSet(); ..//fill randomWordToGuess集合 而(…){ 如果(!(input>='A'&&input带有一个数组,您没有一条直路,但您确实没有选择权,因为输入字母可能

我建议使用Java集而不是数组,那么代码会更快更有效,因为在数组上搜索的复杂性是O(N),但在使用Read Balck tree的哈希集中是O(log(N)),请阅读更多关于和的信息

Set randomWordToGuess=new HashSet();
Set playerGuess=new HashSet();
..//fill randomWordToGuess集合
而(…){

如果(!(input>='A'&&input带有一个数组,您没有一条直路,但您确实没有选择权,因为输入字母可能会出现多次并出现在单词的任何位置,您必须猜测所有字母

因此,您应该迭代元素,并将每个元素与输入进行比较,直到找到匹配的元素或最后一个元素。

for(int i=0;i
   while(...) {
        if (!(input >= 'A' && input <= 'Z')){
                System.out.println("Invalid input:" + input);}
        else {
            for (int i=0 ; i<randomWordToGuess.length ; i++) {
                if(randomWordToGuess[i] == input ) {
                   playerGuess[i] = input;
                }
            }
        }
  }
    Set<Character> randomWordToGuess = new HashSet<>();
    Set<Character> playerGuess = new HashSet<>();
    ....// fill randomWordToGuess Set

    while(...){

        if (!(input >= 'A' && input <= 'Z')){
            System.out.println("Invalid input:" + input);}

        else if (!randomWordToGuess.contains(input)) {
                playerGuess .add(input)
            }
        }
for (int i=0 ; i<randomWordToGuess.length ; i++){
     if(randomWordToGuess[i] == input ) {
           playerGuess[i] = input;
           break;               
      }
     invalidGuess[i] = input;
}