Java 扫描仪的输入不匹配异常

Java 扫描仪的输入不匹配异常,java,java.util.scanner,Java,Java.util.scanner,我有一个作业,试图制作一个程序,使用扫描器在java中读取文本文件。 然而,当我尝试输入一些数据时,它会显示输入不匹配异常 这是我的密码: import java.util.*; import java.io.*; public class Schedule { public static void main(String[] args) { Scanner input = new Scanner (System.in);

我有一个作业,试图制作一个程序,使用扫描器在java中读取文本文件。 然而,当我尝试输入一些数据时,它会显示输入不匹配异常

这是我的密码:

    import java.util.*;
    import java.io.*;
    public class Schedule
    {   
    public static void main(String[] args) 
    {
        Scanner input = new Scanner (System.in);
        Scanner sc = null;
        try 
        {

            sc = new Scanner (new FileReader("E:\\Documents\\Java\\Hackathon2016\\Sample_Folder\\Monday.txt"));
        System.out.println("Enter Subject Code");
            subject = input.next ();
            while (sc.hasNext())
            {
                int time = sc.next ();
                 subjects = sc.next ();
                 String prof = sc.next ();
                 room = sc.nextInt ();

                if (subject.equalsIgnoreCase (subjects))
                {
                    System.out.print ("Your Schedule is at "+time+subject+prof+room);
                }
            }
        }
        catch (IOException e)
        {
            e.getMessage ();
        }
    }
}
以下是txt文件的内容:

TIME SUBJECT Professor Room
07:00am-09:30am Physics1A Ma'am_Mina CON416
10:00am-11:30am MATH21 Sir_Andrew TBA_Anscie
 11:30am-1:00pm SOSC3A Ma'am_Filart TBA_CON
01:00pm-4:00pm CCTN 50 Sir_Jake DCEE_101
它一直在说输入不匹配异常 有人能帮忙吗?
谢谢

我想你的代码应该是这样的

public static void main( String[] args )
{
    Scanner input = new Scanner (System.in);
    Scanner sc = null;
    try 
    {

        sc = new Scanner (new FileReader("E:\\Documents\\Java\\Hackathon2016\\Sample_Folder\\Monday.txt"));
        System.out.println("Enter Subject Code");
        String subject = input.next();
        while (sc.hasNext())
        {
            String time = sc.next();
            String subjects = sc.next();
            String prof = sc.next();
            String room = sc.next();

            if (subject.equalsIgnoreCase (subjects))
            {
                System.out.print ("Your Schedule is at "+time+subject+prof+room);
            }
        }
    }
    catch (IOException e)
    {
        e.getMessage ();
    }    
}
对于数据行编号4
01:00pm-4:00pm CCTN 50先生Jake DCEE 101
我想应该是

01:00pm-4:00pm CCTN50 Sir_Jake DCEE_101

您能显示实际的错误消息吗?第一次查看时(当然除了“hackathon”之外),房间条目似乎不是整数,而您正试图将其扫描为sc.nextInt();这段代码甚至没有编译,这不仅仅是因为很多变量甚至没有定义。例如
inttime=sc.next()将不会编译,因为返回
字符串
,并且您试图将其分配给
int
变量。此外,为了尽快获得帮助,请按照您看到的内容发布正确的错误消息(复制/粘贴)。异常是由
扫描仪引发的,而不是由
文件阅读器引发的,只要检查一下堆栈跟踪就会知道这一点。要准确。