我对Java完全陌生,我不知道为什么在运行时它会给我一个错误。有人能跟我解释一下是怎么回事吗?我尽了最大的努力去尝试不同的事情,但是没有得到任何结果,我可能会从那些知道他们在做什么的人那里学到更多。谢谢!
我的密码:
import java.util.Scanner;
// Get date input and display results
// Parse using a delimiter
public class InputOutput3
{
public static void main(String[] args)
{
// Declare variables
String dateIn, input;
int month, day, year;
Scanner scan, scann;
// Initialize variables
scan = new Scanner(System.in);
// Prompt and wait for input
System.out.print("Enter enter the date (mm/dd/yy) > ");
dateIn = scan.nextLine();
scan.close();
// Analyze value entered
scan = new Scanner(dateIn);
scan.useDelimiter("/");
month = scan.nextInt();
day = scan.nextInt();
year = scan.nextInt();
// Display results
System.out.println("The month is " + month);
System.out.println("The day is " + day);
System.out.println("The year is " + year);
//Get their name
scann = new Scanner(System.in);
System.out.print("Please enter your name: ");
input = scann.nextLine();
System.out.print("Your name is " +input);
// Close resources
scan.close();
scann.close();
}
}结果:
Please enter your name:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at InputOutput3.main(InputOutput3.java:38)发布于 2015-01-22 04:00:43
在第21行,关闭从Scanner读取的System.in,这将关闭与其相关的所有资源(意为System.in)。不要关闭Scanner,你应该很好。
发布于 2015-01-22 04:17:20
你真的不需要用两个扫描仪。有用于解析日期的更好的课程。但是,如果要使用两个扫描器,其中一个用于解析日期,则应该将连接到System.in的扫描仪保持打开状态,以便从控制台读取,读取dateIn的扫描仪应该附加到scann。
https://stackoverflow.com/questions/28081064
复制相似问题