2009-12-02 32 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

相关问题