首页 > 解决方案 > 在线编译器从 System.in 获取输入时导致崩溃

问题描述

使用在线编译器时收到以下错误代码(您可以在这里测试在线代码 -> http://tpcg.io/1Q93ObOJ

$java -Xmx128M -Xms16M PassVerification
Please enter a new password.
Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1540)
    at PassVerification.main(PassVerification.java:11)

在此处输入图像描述

根据我的初学者知识,我收到的错误是命令 nextLine(); 使用它会自动跳过用户输入。我的问题是如何修复它,以便它可以读取用户输入并能够运行必要的 if 和 else 语句,以确保正在创建的密码被认为是强密码。

import java.util.Scanner;

public class PassVerification {


public static void main(String[] args){
    Scanner run = new Scanner(System.in);
    
    System.out.println("Please enter a new password.");
    
    String pass = run.nextLine(); //crash occurs here.
    
    System.out.println("User input = "+pass);
 
    //trim codes for validating password, but unrelated to crash...
      
}
}   

标签: java

解决方案


看起来您使用的在线 java 编译器https://www.tutorialspoint.com/compile_java_online.php具有用于标准输入的单独选项卡。在标准输入选项卡中添加输入字符串后,执行完成。或者,您可以尝试以下具有易于阅读 UI 的在线编译器。 https://onecompiler.com/java/3wvzssxvd


推荐阅读