首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自InputStream的扫描仪输入

来自InputStream的扫描仪输入
EN

Stack Overflow用户
提问于 2012-07-25 12:36:57
回答 1查看 2.3K关注 0票数 1

我正在做测试驱动开发,这需要我为一个接受用户输入的类编写一个测试函数。由于控制台输入函数在测试期间停止输入,因此我使用一个使用字符串的InputStream编写测试。

代码语言:javascript
运行
复制
String str="3\n2\n1\n4\n";
InputStream is = new ByteArrayInputStream(str.getBytes());
assertTrue(app.RunApp(is));

这导致调用函数getChoice(InputStream i),该函数涉及来自扫描仪的控制台输入。

代码语言:javascript
运行
复制
public int getChoice(InputStream i) throws IOException {
        Scanner s=new Scanner(i);
        s.useDelimiter("\n");
        String y= s.next();
        int x=Integer.parseInt(y);
        return x;
    }

我想让上面的代码一个接一个地获取字符串中的数字。但是,正在发生的是,它正确地获取了第一个数字,然后,流的位置直接到达流的末尾,这导致了NoSuchElementException。请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2012-07-25 12:39:09

使用...

代码语言:javascript
运行
复制
String y = s.nextLine();  // That will take the entire line instead of only 1st word
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11642808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档