首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java STDIN nextLine()中的扫描器

java STDIN nextLine()中的扫描器
EN

Stack Overflow用户
提问于 2012-09-18 06:57:04
回答 3查看 21.6K关注 0票数 1

我们的教授让我们做了一个解析字符串的实验。他拒绝让我们使用文件,并说如果他复制并粘贴一段字符串,我们必须对其进行解析。我的问题是,在复制和粘贴时,我不确定如何从STD获取数据(我可以用文件更容易地做到这一点)。

代码语言:javascript
运行
复制
public static void main(String[] args)
  {
    Scanner finput;
    String input;
    System.out.println("Enter Data: ");
    finput = new Scanner(System.in);

    input = finput.nextLine();
            System.out.println("OUTPUT")
    System.out.println(input);
    System.out.println(input.length());
    while(finput.hasNextLine())
    {
        input = finput.nextLine();
        System.out.println(input);
    }
  }

这就是我到目前为止所得到的,我唯一的问题是当我复制一个段落并粘贴到控制台(使用eclipse)时,它不会抓住最后一行,除非我按回车键。如果我再次键入内容并按enter,则前一行将与新条目连接在一起,如下所示。

代码语言:javascript
运行
复制
Enter Data:
FirstLine
SecondLineOUTPUT
FirstLine
junk
SecondLinejunk

如果输入只是一行接一行的输入,我就不会有这个问题,我也不确定为什么复制粘贴不需要我按enter键就可以前进……

EN

回答 3

Stack Overflow用户

发布于 2012-09-18 07:09:24

没有办法实现您的想法,因为输入流无法知道行的“结束”是什么,除非您按enter键。

考虑一下,如果您要键入文本:

代码语言:javascript
运行
复制
ABCD
EFGH

但是您实际上只是想让第二行是EFG,而不是EFGH。怎么可能有办法确定这一点呢?Copy+paste和实际的打字完全一样,只是速度快得多。

我猜你的教授会在段落末尾为你按回车键。

票数 1
EN

Stack Overflow用户

发布于 2016-07-02 20:55:00

您只需通过发送EOF字符( Unix/Linux中的CTRL+D或Windows中的CTRL+Z )来告诉控制台您已经完成了输入。

票数 0
EN

Stack Overflow用户

发布于 2016-12-11 15:47:52

就在你复制的时候..再复制一个空格,它将充当enter!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12468193

复制
相关文章

相似问题

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