【问题标题】:Filter \n in a String in java在java中的字符串中过滤\ n
【发布时间】:2016-03-12 18:26:52
【问题描述】:

我有这个简单的代码:

BufferedReader bR = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    while (true) {
        String tmp = bR.readLine();
        System.out.println(tmp);

        if (!tmp.contains("\n")) {
            PrintWriter pW = new PrintWriter(socket.getOutputStream(), true);
            pW.printf("return message: " + tmp);
        }

我的问题是,当我在终端中使用 Enter 时,仍然会向终端打印“返回消息”(在这种情况下为 Telnet) 此外,当我尝试tmp.equals("\n") 时,它不会捕捉到Enter。 我该怎么做才能捕捉到return message 没有打印出来的Enter

【问题讨论】:

  • 将 Enter 视为拆分方法中的字符。你永远不会在你的 tmp 变量中得到它
  • 如果我正确理解您的问题,条件应该是if (!tmp.isEmpty())

标签: java terminal equals


【解决方案1】:

BufferedReader类的方法readLine()在出现换行符\n时终止。

这意味着\n不能在tmp中。

供参考:https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine%28%29

【讨论】:

  • 谢谢你 (y) 我现在用 if (tmp.length() > 0) 解决了,感谢你的提示:)
猜你喜欢
  • 2013-04-13
  • 2020-03-06
  • 2018-05-05
  • 1970-01-01
  • 2019-02-25
  • 2018-09-18
  • 2011-05-17
  • 2018-07-24
  • 2015-08-06
相关资源
最近更新 更多