当前位置: 首页 > 知识库问答 >
问题:

测试问题解决时Java中出现运行时错误。我在字符串数组上的输入部分做错了吗?

景宏富
2023-03-14

在这里输入图像描述非常简单的问题,但在网站上显示运行时错误(初学者顺便说一句)。不太确定错误,但我认为输入部分不正确(从输入中获取多个字符串)。还有其他方法可以获取字符串数组的输入吗?如果有,请告诉我。

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.base/java.util.Scanner.nextLine(Scanner.java:1651)
    at ExcellentResult.main(ExcellentResult.java:14)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at _$SandboxExecutor.main(_$SandboxExecutor.java:38)`package examples0;
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int salary = scanner.nextInt();
        String[] tabs = new String[n];
        int i;
        for(i=0; i<n; i++) tabs[i] = scanner.nextLine();
        for(i=0; i<n; i++){
            switch (tabs[i]) {
                case "Facebook":
                    salary-=150;
                    break;
                case "Instagram":
                    salary-=100;
                    break;
                case "Reddit":
                    salary-=50;
                    break;
            }
        }
        if(salary>0){
            System.out.println(salary);
        }
        else{
            System.out.println("You have lost your salary.");
        }
    }

共有1个答案

习宸
2023-03-14

代码似乎是正确的,这是我运行后得到的输出:

    3
    1000
    Facebook
    Instagram
    750

获取字符串输入的另一种方法是在运行它时提供命令行参数,然后通过“args”访问这些字符串。您的代码将如下所示:

    public static void main(String[] args) {
    
    int salary = Integer.parseInt(args[0]);
    
    for(int i=1; i<args.length; i++){
        switch (args[i]) {
            case "Facebook":
                salary-=150;
                break;
            case "Instagram":
                salary-=100;
                break;
            case "Reddit":
                salary-=50;
                break;
        }
    }
    if(salary>0){
        System.out.println(salary);
    }
    else{
        System.out.println("You have lost your salary.");
    }
}

您必须使用您的终端运行它,例如:

    % javac <Name of class>.java
    % java <Name of class> 3000 Facebook Instagram Reddit
    2700
    % java <Name of class> 100 Facebook Instagram Reddit 
    You have lost your salary.

我希望这有帮助。

 类似资料:
  • 问题内容: 我正在使用mocha-phantomjs设置进行单元测试。我有以下package.json脚本来运行测试。 在浏览器中可以正常运行。当我在cmd中运行命令时,测试运行正常,但同时也会出现以下错误 请任何人告诉我如何解决此错误。 问题答案: 当我在cmd中运行命令npm test时,测试运行正常 不,他们不是。您有6个失败的测试。的退出代码等于测试失败的次数。直接运行,看看有什么问题。意

  • 问题内容: 当我尝试在Chrome中运行测试时出现此错误: 初始化方法AutomationUsingSelenium.SmuladorChrome.MyTestInitialize引发异常。OpenQA.Selenium.DriverServiceNotFoundException:OpenQA.Selenium.DriverServiceNotFoundException 原因是什么? 问题答案

  • 我有一个XML字符串,如下所示: 现在,我用名称数据将其解组到类中。java,它将变量作为CustomerInfo的另一个类。JAVA 但在解组时,我得到了一个错误作为意外元素(uri:)https://www.google/com,本地:“数据”)。预期的元素为

  • 对不起,新手:/。所以当我在“输入你的年龄”中键入一封信时,我有这个问题 输入您的年龄:q 线程“main”java.util.InputMismatchException中出现异常 在java.util.scanner.throwfor(Scanner.java:909) 我想如果我打了任何一个字母,它显示“无效输入”。有人能帮我吗?[对不起,糟糕的英语]

  • 每次尝试使用Jenkins执行测试用例时,下面的Java错误都会显示在我的测试报告中。 错误1:

  • 我刚刚添加了测试单元,当我使用运行它时,我得到了错误,测试将失败。但是,当我运行时,一切看起来都很好,我不知道发生了什么黑客。我认为当我使用运行时,无法识别部分文件,并将抛出新的错误。 这是我的代码https://github.com/rohmanhm/unobuilder/tree/test 下面是错误消息。 rohmanhm~/desktop/code/works/unobuilder tes