1

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

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,否则它不会抓取最后一行。如果我再次输入内容并按回车键,则上一行将与新条目连接,如下所示。

Enter Data:
FirstLine
SecondLineOUTPUT
FirstLine
junk
SecondLinejunk

如果输入只是逐行输入,我就不会遇到这个问题,而且我也不知道为什么如果我复制粘贴它不需要我按回车键来进行进度....

4

3 回答 3

1

没有办法按照您的想法进行操作,因为输入流无法知道行的“结束”是什么,除非您按下回车键。

考虑是否要输入文本:

ABCD
EFGH

但你真的只是想让第二行成为EFG,而不是EFGH。怎么可能有办法确定呢?复制+粘贴与实际打字完全一样,只是要快得多。

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

于 2012-09-17T23:09:24.473 回答
0

就在你复制的时候..再复制一个空格作为输入!!

于 2016-12-11T07:47:51.617 回答
0

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

于 2016-07-02T12:54:59.707 回答