java - 我如何从缓冲读取器输入字符串?

标签 java java.util.scanner bufferedinputstream

我也主要使用 Scanner,也想尝试使用缓冲读取器: 这是我目前所拥有的

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();
    }
}

我相当肯定会得到一个你可以说的 int

Integer.parseInt(keyboardInput.readLine());

但是如果我想要一个字符串我该怎么办

最佳答案

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;
}

关于java - 我如何从缓冲读取器输入字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1833108/

相关文章:

java - 用于序列化 List<String> 中的 List<User> 的自定义序列化程序

java - 计算 Stream 的元素

java - 如何在 while 循环内的 nextLine 之后使用 nextDouble

php - 如何在我的 android 应用程序上打印 PHP echo?

java - 在 bash 中构建较旧的 NetBeans 项目会导致错误

java - 更改构造函数,缺少 jrebel '-noverify'

java - 扫描仪帮助 - Java

java - Scanner Java 只读取第一行

java - IOException : StreamClosed Without Apparent Cause

java - Android:如何从InputStream中随机访问?