java 如何使用 scanner 读取从剪贴板粘贴进来的多行

新手上路,请多包涵

windows平台 IDE : IDEA

在网上搜索到windows平台的回车相当于是输入了"rn",在IDEA中设置line separator也是"rn",但是我使用scanner.useDelimiter("\r\n")时,都无法读取哪怕一行。。。

Scanner scanner = new Scanner(System.in);
scanner.useDelimiter("\r\n");
while (scanner.hasNext()) {
    String input = scanner.next().trim();
    System.out.println(input);
}

我想要实现的需求是,从剪贴板粘贴多行文字进来,再使用回车键确认。

但是我把delimiter换成了n后,假设有n行文字,会连续读取n-1行,当我回车会再读取第n行。。求大神解答

阅读 3.6k
1 个回答

这样子应该是没办法的。从剪切板粘贴过来和回车都是同一个换行符,所以你粘贴进去的时候就会读到换行符输出了,不用等你回车。值与最后一行要回车才能显示,是因为最后一行没有换行符。举个例子,你复制下面这段:

1
2
3

程序读到的是:

1\n2\n3

读到\n就输出,所以只会输出前两行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题