2016-09-02 3 views
0

Я хочу прочитать int, double и string и добавить каждый к переменной, но я не могу прочитать строку.Понимание чтения String с помощью сканера

int i = 4; 
double d = 4.0; 
String s = "My name is "; 
Scanner scan = new Scanner(System.in); 
int i2 = scan.nextInt(); 
double d2 = scan.nextDouble(); 
String s2 = scan.nextLine();   
System.out.println(i+i2); 
System.out.println(d+d2); 
System.out.println(s + s2); 
scan.close(); 

я понимаю, что scan.nextLine() читает строку, но она просто пропускает его. scan.next() просто читает первое слово. работает должным образом, если я добавил scan.nextLine(); перед тем String str2 = scan.nextLine();, но я не знаю, почему

+0

Readline читать все материалы до следующего EOL – Jens

+0

вы можете поделиться вход пожалуйста – xxlali

+1

Взгляните на это: http://stackoverflow.com/questions/13102045/scanner- is-skipping-nextline-after-use-next-nextint-or-other-nextfoo – uoyilmaz

ответ

-1

для ввода

2.4 
"Some String" 

При использовании nextDouble только 2,4 определена не в EndOfLine (после 2,4 и до "Some String".). Следовательно, ваш код работал с использованием 2 nextLine().

Вы также можете использовать

int i2 = Integer.parseInt(scan.nextLine()); 
double d2 = Double.parseDouble(scan.nextLine()); 
String str2 = scan.nextLine(); 
+0

'Метод parseInt (String) в типе Integer не применим для аргументов (int)' – joc

+0

Спасибо @joc, отредактирован: –

+0

@Lokesh Agrawal Получил это. Благодарю. – Steven

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