Как получить целое число, чтобы установить значение так же, как сканер - PullRequest
2 голосов
/ 17 декабря 2011

Мне было интересно, как получить Scanner для установки его значения в целое число.

Причина, по которой я хочу это сделать, заключается в том, что у меня есть программа:

  • чтение строки ввода, состоящей только из цифр,
  • затем принимает ввод,помещает его в int,
  • и затем использует Integer.toBinaryString(<name of int>); для отображения числа в двоичном виде

Единственная проблема заключается в том, что имя в HAS должно быть int;это не может быть String.

Вот мой код, если он вам нужен:

package base.pkg10.to.binary.txt.converter;

import java.util.Scanner;
import static java.lang.System.out;

public class Base10ToBinaryTXTConverter {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int output;

        out.println("This converts base 10 numbers to binary numbers.");
        out.println("Please enter your Base 10 Number:");
        out.println("Please wait...");
        out.println("Your numeber in Binary is:");
        out.println(Integer.toBinaryString(input));

    }
}

Ответы [ 2 ]

3 голосов
/ 17 декабря 2011

вместо получения значения с использованием nextLine() и синтаксического анализа с использованием Integer.parseInt, вы можете напрямую использовать input.nextInt()

Scanner input = new Scanner(System.in);
System.out.println(input.nextInt());

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

1 голос
/ 17 декабря 2011

Итак, вам нужно преобразовать вход со сканера в целое число?

Попытка:

int result = Integer.parseInt(input.nextLine());

Тогда вы могли бы написать:

out.println(Integer.toBinaryString(result));

Edit: при использовании Integer.parseInt хорошей идеей будет отловить любые NumberFormatException s, которые могут возникнуть из-за неправильного ввода, например Integer.parseInt("foo"); выдаст такое исключение.

...