2009-12-02 68 views
1

林使用過多使用掃描儀主要是和想太多嘗試使用一個緩衝的讀者: 繼承人是我迄今爲止如何從緩衝讀取器輸入字符串?

import java.util.*; 
import java.io.*; 
public class IceCreamCone 
{ 
// variables 
String flavour; 
int numScoops; 
Scanner flavourIceCream = new Scanner(System.in); 

// constructor 
public IceCreamCone() 
{ 

} 
// methods 
public String getFlavour() throws IOexception 
{ 
    try{ 

    BufferedReader keyboardInput; 
    keyboardInput = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.println(" please enter your flavour ice cream"); 
    flavour = keyboardInput.readLine(); 
    return keyboardInput.readLine(); 
    } 
    catch (IOexception e) 
    { 
     e.printStackTrace(); 
    } 
} 

IM相當肯定獲得一個int,你可以說

Integer.parseInt(keyboardInput.readLine()); 

但什麼這樣做,你應該簡單地做我做,如果我想要一個字符串

+1

爲什麼這會降低投票率? – 2009-12-02 15:17:32

回答

5

keyboardInput.readLine()已經返回一個字符串:

return keyboardInput.readLine(); 

(更新)

readLine方法拋出IOException。你要麼拋出異常:

public String getFlavour() throws IOException { 
    ... 
} 

或者你在你的方法中處理它。

public static String getFlavour() { 
    BufferedReader keyboardInput = null; 
    try { 
     keyboardInput = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println(" please enter your flavour ice cream"); 
     // in this case, you don't need to declare this extra variable 
     // String flavour = keyboardInput.readLine(); 
     // return flavour; 
     return keyboardInput.readLine(); 
    } catch (IOException e) { 
     // handle this 
     e.printStackTrace(); 
    } 
    return null; 
} 
+0

即時通訊仍然得到一個編譯錯誤。我不明白。 你告訴我不要把味道定義爲字符串,只是一行會打印? – OVERTONE 2009-12-02 14:15:17

+0

你得到什麼錯誤? – 2009-12-02 14:17:10

+0

未處理的io異常。我也改變了代碼,你上面給了我什麼。 – OVERTONE 2009-12-02 14:19:41