2017-09-25 226 views
0

我在下面的代碼中遇到問題,請看看它,並幫助我解決我的問題。 的代碼是:掃描儀類Java

import java.util.*; 
public class Test1{ 
    public static void main(String ...args){ 
    Scanner s1=new Scanner(System.in); 
    int age; 
    age= s1.nextInt(); 
    System.out.println(age); 
    System.out.println("Enter Name"); 
    String name; 
    s1.next(); 
    name = s1.nextLine(); 
    System.out.println(name); 
} 
} 

方案的輸入:

12 
12 
Enter Name 
A B C 
B C 

預期輸出:

12 
    12 
    Enter Name 
    A B C 
    A B C 

我試圖掃描儀class.Please幫助我獲得我的期望輸出,並指定我的錯誤。請解釋你的答案非常感謝。

+4

's1.next();'將丟棄第一個標記。 – Berger

+0

@Berger如果我刪除s1.next();那麼這是輸出12 輸入名稱 程序,而不輸入查詢的(HTTPS [掃描儀使用後的next(),nextInt()或其他nextFoo()跳過nextLine()?]名稱 –

+0

可能的複製得到了終止:/ /stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after-using-next-nextint-or-other-nextfoo) – AxelH

回答

1
import java.util.*; 

public class Test1 
{ 
    public static void main(String ...args){ 
    Scanner s1=new Scanner(System.in); 
    int age; 
    age= s1.nextInt(); 
    System.out.println(age); 
    System.out.println("Enter Name"); 
    s1.nextLine(); 
    String name = s1.nextLine(); 
    System.out.println(name); 
    } 
} 

這應該起作用。

sc.next() uses <space> as a delimiter by default. 
+0

謝謝你@Gaurang它工作 –

+0

高興地幫助:) –