Java.util.Scanner в int

Как я могу установить номер, хранящийся в «dryrun.txt», как внутренний URL-адрес? Я знаю, что это очень простой ответ, но я не могу его понять. Я видел другие сообщения об использовании parseInt, но когда я это делаю, я всегда получаю сообщение об ошибке, и я спросил своего учителя, и он сказал, что это используется только для поиска чисел в другом тексте, в этом файле это всего лишь 1 число. Спасибо за помощь.

import java.util.Scanner;
import java.io.*;

public class Even
{
  public static void main (String[] args) throws IOException
  {
    int even = 0;
    int url = 0;
    int Counter = 2;
    Scanner fileScan;

    fileScan = new Scanner (new File("dryrun.txt"));
    url = fileScan.nextInt();

    if ( url > 2)
      System.out.println ("Error");      
    if (url % 2 == 0)
      even = (Counter + 2);

    System.out.print(" "+ even +" "); 
  }
}

person user1101495    schedule 18.09.2013    source источник
comment
Какое значение в файле?   -  person MadProgrammer    schedule 18.09.2013
comment
Этот код кажется правильным. Какую ошибку вы получаете?   -  person SimonT    schedule 18.09.2013
comment
Я не получаю никаких ошибок, но у меня ничего не работает, если я установлю значение в файле на 2, он должен распечатать ошибку, но это не так, он просто добавляет к нему 2 и печатает 4. Как я могу использовать значение в файле как int url?   -  person user1101495    schedule 18.09.2013
comment
url > 2 означает больше 2, поэтому, если значение вашего файла равно 2, он не передаст этот оператор if. Получение результата 4 для входа 2 является ожидаемым результатом. Вы можете проверить это, выполнив System.out.println(url); после того, как прочитаете значение в url = fileScan.nextInt();.   -  person n00begon    schedule 18.09.2013
comment
Хорошо, да, вы правы, извините, я этого не понял, но в любом случае у меня все еще есть моя первоначальная проблема, значение в файле сейчас равно 0, и это дает мне ошибку, но если я установлю его на 2, он добавляет четыре и не т дать мне ошибку ..   -  person user1101495    schedule 18.09.2013
comment
if url > 2 ошибка печати if url % 2 == 0 добавьте 2, поэтому, когда url == 4 вы нажмете оба оператора case... use и if-else...   -  person MadProgrammer    schedule 18.09.2013
comment
@user1101495 user1101495 В чем ошибка, когда значение в файле равно 0? Ваш вопрос мало что объясняет. Отредактируйте свой вопрос.   -  person TheKojuEffect    schedule 18.09.2013
comment
Каковы ожидаемые входные данные и ожидаемые результаты?   -  person MadProgrammer    schedule 18.09.2013


Ответы (1)


Хорошо, да, вы правы, извините, я этого не понял, но в любом случае у меня все еще есть моя первоначальная проблема, значение в файле сейчас равно 0, и это дает мне ошибку, но если я установлю его на 2, он добавляет четыре и не т дать мне ошибку ..

Это говорит о том, что ваша логика неверна...

Основываясь на этом коде, давайте проверим стол...

if ( url > 2)
  System.out.println ("Error");      
if (url % 2 == 0)
  even = (Counter + 2);

Предположим, что url == 4...

  • if (url > 2) = if (4 > 2) = true, выведите Error
  • if (url % 2 == 0) = if (4 % 2 == 0) = true, even = Counter + 2

Предположим, что url == 2...

  • if (url > 2) = if (2 > 2) = false, ничего не делать...
  • if (url % 2 == 0) = if (2 % 2 == 0) = true, even = Counter + 2

Предполагая, что вы хотите напечатать ошибку, когда число превышает 1, вы должны использовать if (url >= 2) или if (url > 1)

Предполагая, что вы не хотите продолжать вычисление результата, когда у вас есть ошибка, вы должны использовать оператор if-else в соответствии со строками...

if ( url > 2)
  System.out.println ("Error");      
else if (url % 2 == 0) {
  even = (Counter + 2);
  System.out.print(" " + even + " ");
}
person MadProgrammer    schedule 18.09.2013