java - 需要帮助修复我的代码中的异常错误

标签 java debugging error-handling compiler-errors runtime-error

我正在Zybooks网站上的实验室中工作,并且已完成以下代码:

import java.util.Scanner; 

public class LabProgram {
public static void main(String[] args) {
    Scanner scnr = new Scanner(System.in);

    String firstName;
    String middleName;
    String lastName;

    firstName = scnr.next();
    middleName = scnr.next();
    lastName = scnr.nextLine();
   

    if (lastName.contains("")){
        System.out.println(middleName + ", " + firstName.charAt(0) + ".");
    }
    else {
        lastName = lastName.substring(1);
        System.out.println(lastName + ", " + firstName.charAt(0) + "." + middleName.charAt(0) + ".");
    }
  }
  }
我收到的异常错误是这样的:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.base/java.util.Scanner.nextLine(Scanner.java:1651)
at LabProgram.main(LabProgram.java:13)
当我在IDE中运行以下代码时,一切正常。但是,当我尝试在Zybooks中运行它时,出现异常错误。我得知这是因为当我输入两个名称后不添加空格时,Zybooks会给出异常错误。但是,当我在姓氏后面添加空格时,代码将按预期编译。出于评分的目的,我需要在不占用键盘空间的情况下编译代码,因此我在问如何获取此代码。我尝试过手动添加空格,但没有任何效果。
任何帮助将不胜感激

最佳答案

当您调用java.util.NoSuchElementException时,常常在扫描程序的上下文中抛出nextLine(),没有下一行。您可以通过在询问前检查下一行来解决这一问题。
尝试如下代码:

if(scan.hasNextLine()){
  String story = scan.nextLine();
}

关于java - 需要帮助修复我的代码中的异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64322471/

相关文章:

java - 使用javafx创建一个从数字开始倒数并在0播放音乐的程序

java - Box2D(LibGdx)碰撞后获取WorldPoint错误

java - 如何避免使用领域驱动设计拥有非常大的对象

.net - 如何使用特定文件启动 Excel 加载项调试器?

c# - 调试日志弄乱了我的代码

delphi - 我如何从delphi检索WinInet错误代码的错误描述

java - Java 7 中的客户端 TLS session 票证支持

android - 调试时禁用 chrome 数据保护程序

google-app-engine - Golang - AppEngine Datastore GetMulti() 在返回 MultiError 时是否返回无效数据?

angular - Angular/RxJs-在失败的请求上访问响应头