2015-07-12 53 views
2

正如您所看到的,這是我正在處理的代碼片段。我的問題是爲什麼我必須創建一個新的掃描儀才能輸入?爲什麼我不能只用stdIn.nextLine();呢?如果你可以包含一些參考文獻,我將非常感激。爲什麼我必須創建一個新的掃描儀?創建驅動程序時

import java.util.Scanner; 

public class Week6{ 

    public static void main(String[]args){ 
    Horse horse1; 
    Horse horse2; 
    Horse horse3; 
    String name; 
    int age; 
    double height; 
    String color; 
    boolean pureBlood; 
    Scanner in = new Scanner(System.in); 

    horse1 = new Horse(); // creation of Horse1 
    horse2 = new Horse(); // creation of horse2 
    horse3 = new Horse(); // creation of horse3 

    System.out.print("Enter the name of Horse1: "); 
    name = in.nextLine(); 

    horse1.setName(name); //setting name for horse1 

    System.out.println(horse1.getName()); 



    } // end main 
} // end class 
+1

接受jondiaz的答案,因爲他的答案是完美的! –

回答

3

你不能使用stdIn,因爲java沒有那個對象,也沒有創建。 當您編寫myString.nextline()時,您正在調用對象myString(所有字符串都是對象,例如:String myString = new String(「Hello World!」)),但是如果調用stdIn,將顯示錯誤。

我還沒有找到任何可以使用stdIn的java庫,但是stdIn適用於PHP,Python和C,所以也許你會因此而感到困惑。

4

檢查的Javadoc java.lang.Systemjava.io.InputStreamjava.io.Scanner

System.inInputStream。因此,您可以使用InputStream方法從中訪問數據,這是非常基本的。

當您創建新Scanner,你在不同的類中封裝了InputStream,能夠提供更先進的/舒適的方法,如readLinenextLine剛剛不可在InputStream定義。

如果它有助於觀察我的意思,那麼請認爲您的Scanner變量可能有任何不同的名稱,因此沒有直接關係。總之,你並沒有創建「另一個」Scanner,因爲在你的代碼中只有一個Scanner實例(你創建的)。

1

我們使用Scanner類來獲取用戶輸入。我們首先創建一個Scanner類的對象,然後使用Scanner類的方法.Scanner類存在於java.util包中,因此我們將該包導入到我們的程序中 例如:

Scanner a = new Scanner(System.in);

繼Scanner類的方法被用於

1)nextInt到輸入的整數

2)nextFloat輸入浮子

3)nextLine到輸入字符串

import java.util.Scanner; 


class GetInputFromUser 
{ 
public static void main(String args[]) 
{ 
    int a; 
    float b; 
    String s; 

    Scanner in = new Scanner(System.in); 

    System.out.println("Enter a string"); 
    s = in.nextLine(); 
    System.out.println("You entered string "+s); 

    System.out.println("Enter an integer"); 
    a = in.nextInt(); 
    System.out.println("You entered integer "+a); 

    System.out.println("Enter a float"); 
    b = in.nextFloat(); 
    System.out.println("You entered float "+b); 
} 
} 

希望!這有助於你...

+1

這完全不是答案。 –

相關問題