所以我试图看看是否有办法计算正确的输入并允许多个输入与布尔匹配。我能做到吗?

So I'm trying to see if there is a way to count correct inputs and allow multiple inputs with boolean match. Am I able to do this?

提问人:Natebd 提问时间:12/31/2022 最后编辑:Jim GarrisonNatebd 更新时间:12/31/2022 访问量:45

问:

因此,我尝试在代码中的多个位置添加 count ++,并研究某种方法来允许多个输入无济于事。我是否在放置时遗漏了某些内容,或者我是否需要完全重写代码以完成我想要完成的任务?这不是布尔匹配的情况吗?如果这是一个菜鸟问题,非常迷茫和抱歉。感谢您的投入。

Scanner scanner = new Scanner(System.in);
System.out.println("Insert any State Capital");
String currentInput = scanner.nextLine();

boolean match = false;
            
            String [] capitals = stateCapitals[1];
            for (String capital:capitals) {
                if (capital.equalsIgnoreCase(currentInput)) {
                    match = true;
                    break;
                    }
                
                }


if (match) {
                System.out.println ("Correct");
                
            }
            else
                System.out.println ("incorrect");
            }
            }

问题和我尝试过的在上面。另外,如果搞砸了,对格式表示歉意。首次使用堆栈溢出。

Java 数组字符串 boolean java.util.scanner

评论

1赞 Old Dog Programmer 12/31/2022
这似乎是试图要求用户输入州首府的名称,然后测试输入以查看它是否实际上是州首府的名称。程序将输出 或 。我没有看到任何试图计算任何东西的尝试。代码有两个问题:1)这是一个由1个元素组成的数组。您可能需要一个包含 50 个元素的数组。2)数组实际上并不包含大写字母的名称。CorrectincorrectString [] capitals = stateCapitals[1];capitals
0赞 Old Dog Programmer 12/31/2022
有关如何使用文本初始化数组的示例,请参阅 stackoverflow.com/questions/31641638/...String
0赞 Old Dog Programmer 12/31/2022
有关另一个示例,请参阅 stackoverflow.com/questions/74355188/...。请注意,这是一个 2D 数组,如上一个示例所示,而您需要一个 1D 数组。
0赞 Natebd 12/31/2022
@OldDogProgrammer 我应该补充一点,我在代码的前面创建了一个二维数组(没有显示,因为我认为它对我的问题来说有点太长了,并使用扫描仪类来获取用户输入。这就是这个片段的来源。我只是想知道是否有一种方法可以将其变成允许具有正确/错误响应的多个输入的东西,而无需在第一次正确和计算正确答案的能力后结束程序。这可能吗?我曾尝试在 match = true 行下添加 count++,但出现错误。
0赞 Old Dog Programmer 1/1/2023
看起来您采纳了创建最小可重复示例的建议。也许你做得太过分了,让它变得微不足道。但是,无论如何,我不确定你在问什么。也许包括一些例子会有所帮助?

答:

0赞 isilia 12/31/2022 #1

请参阅下面的代码,如果这解决了您的问题,请告诉我。

import java.util.Scanner;
import java.util.*;
public class Main {
    
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        ArrayList<String> inputList = new ArrayList<>();
        ArrayList<String> capitalList = new ArrayList<>(List.of("Delhi","Kabul","Dhaka"));
        for (int i = 0; i < 5; i++)
        {
            
            String currentInput = scanner.nextLine();
            inputList.add(currentInput);
            
        }
        
        int correct_response_count = 0;
        int wrong_response_count = 0;
        
        for (int i = 0; i < inputList.size(); i++)
        {
           if (capitalList.contains(inputList.get(i)))
           {
               correct_response_count++;
           }
           else
           {
               wrong_response_count++;
           }
   
        }
        
        System.out.println("The correct count of answers is: " + correct_response_count);
        System.out.println("The wrong count of answers is: " + wrong_response_count);
        
        
    }
}

输入

India
Delhi
Australia
Kabul
Bangladesh

输出

The correct count of answers is: 2
The wrong count of answers is: 3