inData无法解析

时间:2014-12-04 16:39:15

标签: java text-files java.util.scanner

该程序将从用户可能输入的特定点输出其他内容之间的距离。但是,我在设置扫描仪时遇到问题,因为它从另一个文本文件读取输入。这是我的代码:

public class junior 
{


public static void main(String[] args)throws IOException
{
    double avgMPG;
    double pricePer;
    double speed;
    String letter1;
    String letter2;
    int start = 0;
    int end=0;
    int distance;


    Scanner inData = new Scanner(new File("input.txt"));

    boolean repeat=false;
while (inData.hasNext())
{
    letter1.inData.next();
    letter2.inData.next();


    while (!repeat)
        {


            System.out.print("1.");
            letter1=inData.next();
            if(letter1.equals("A"))
            {
                start=0;
                repeat=true;

            }
            else if (letter1.equals("B"))
            {
                start=450;
                repeat=true;


            }
            else if (letter1.equals("C"))
            {
                start=590;
                repeat=true;

            }
            else if (letter1.equals("D"))
            {
                start=710;
                repeat=true;

            }
            else if(letter1.equals("E"))
            {
                start=1030;
                repeat=true;

            }
            else if (letter1.equals("F"))
            {
                start=1280;
                repeat=true;

            }
            else if (letter1.equals("G"))
            {
                start=1360;
                repeat=true;
            }
            else
            {
                System.out.println("ERROR: You didn't enter a valid character. Please try again");
                repeat=false;
            }
        }

repeat=false;
while (!repeat)
{


    if(letter2.equals("A"))
    {
        end=0;
        repeat=true;

    }
    else if (letter2.equals("B"))
    {
        end=450;
        repeat=true;


    }
    else if (letter2.equals("C"))
    {
        end=590;
        repeat=true;

    }
    else if (letter2.equals("D"))
    {
        end=710;
        repeat=true;

    }
    else if(letter2.equals("E"))
    {
        end=1030;
        repeat=true;

    }
    else if (letter2.equals("F"))
    {
        end=1280;
        repeat=true;

    }
    else if (letter2.equals("G"))
    {
        end=1360;
        repeat=true;
    }
    else
    {
        System.out.println("ERROR: You didn't enter a valid character. Please try again");
        repeat=false;
    }
    distance=end-start;
    System.out.print("Total distance: "+distance);
}
}
}


}

声明“inData.next”的部分会一直发送错误,说明该字段不存在或无法解析。如何修复此问题以正确读取我的测试文件?

1 个答案:

答案 0 :(得分:1)

看起来好像在这里

letter1.inData.next();
letter2.inData.next();

您尝试从扫描仪中读取并将结果放入String变量中。但要做到这一点,你想要

letter1 = inData.next();
letter2 = inData.next();

编译器正在抱怨,因为您正试图访问名为String的{​​{1}}变量的字段(inData表示的意思),但是没有这样的领域。