2014-12-04 4 views
1

Эта программа будет выводить расстояние между прочим из определенных точек, которые может ввести пользователь. Однако у меня возникают проблемы с настройкой моего сканера, потому что он считывает ввод из другого текстового файла. Вот мой код:inData не может быть разрешен

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); 
} 
} 
} 


} 

Часть Thats говорит «inData.next» продолжает посылать сообщение об ошибке сказав, что поле не существует или не может быть решена. Как исправить это, чтобы правильно прочитать из моего тестового файла?

+0

'letter1.inData.next();' должно быть 'letter1 = inData.next();'? – csmckelvey

+0

Довольно уверен, что @Takendarkk прав. Для того, что вы пытаетесь сделать, это может быть лучший путь для чтения из файла: http://stackoverflow.com/questions/811851/how-do-i-read-input-character-by-character- в-Явы – John

ответ

1

Это выглядит так, как будто здесь

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

вы пытаетесь прочитать от сканера и поместить результат в ваших String переменных. Но чтобы сделать это, вы хотите

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

Компилятор жалуется, потому что вы пытаетесь добраться до поля ваших String переменных называется inData (это то, что letter1.inData средства), но у них нет такого поля ,

Смежные вопросы