2013-02-25 2 views
1

Я немного новичок в Java, и я хотел попробовать получить ввод с клавиатуры. Я понимаю, что я должен использовать сканер, но когда я это сделаю, программа не будет ждать ввода. Вместо этого он мгновенно бросает исключение NoSuchElementException. Код, который я пытаюсь использовать следующим образом:Ввод клавиатуры java

import java.util.*; 

public class Main { 
    public static void main(String args[]) { 
     int move = -1; 
     String moveColumn = ""; 
     Scanner scan = new Scanner(System.in); 

     System.out.print("Please enter a move: "); 
     moveColumn = scan.next(); 
     move = Integer.parseInt(moveColumn); 

     System.out.println("You chose " + moveColumn + "."); 
    } 
} 

Из всего, что я прочитал, этот блок кода должен работать, но это не так. Может ли кто-нибудь указать, что я делаю неправильно, или хотя бы указать на некоторые ресурсы, которые могут помочь мне?

+0

Вы пробовали 'scan.nextLine()'? – nattyddubbs

+2

Вы также можете использовать scan.nextInt(), поэтому вам не нужно преобразовывать строку. – HectorLector

+2

Я только что скопировал и вложил этот код в Eclipse, и он бежал без затруднений .. Какая IDE вы используете? – christopher

ответ

0

Я запустил ваш код на терминале, и он прошел отлично. Программа ожидает либо числа (ожидаемое значение), либо строки, которая генерирует ожидаемое «NumberFormatException». Как упоминал Survivor (9 марта) было бы разумно установить IDE, такую ​​как Eclipse или Netbeans. Поскольку они предоставляют полезные инструменты для отладки.

-2

Вы можете использовать moveColumn = scan.nextLine();

-1

Вы можете заменить moveColumn = scan.next(); move = Integer.parseInt (moveColumn); с move = scan.nextInt()

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