【问题标题】:String.equals() method not matching "\n" characterString.equals() 方法不匹配“\n”字符
【发布时间】:2014-11-15 06:10:17
【问题描述】:

所以我对 String 类的 equals() 方法有疑问。我正在尝试查找检查以确保用户输入不仅仅是换行符(“\n”),但每当我比较只是换行符的用户输入时,它总是返回 false。代码如下:

command = kb.nextline();
if(!command.equals("\n"))
{
    performProcess(command);
}

其中“kb”是扫描仪。有什么想法吗?

【问题讨论】:

  • 与其尝试猜测可能存在哪些不匹配的内容,不如使用调试器或日志记录并实际查看其中的内容?
  • 同时,我不太使用 Java,但 Scanner.nextline 的文档说:“此方法返回当前行的其余部分,不包括末尾的任何行分隔符。”那么……你为什么一开始就期望它匹配"\n"

标签: java newline equals


【解决方案1】:

此方法返回当前行的其余部分,不包括末尾的任何行分隔符

来自relevant documentation

【讨论】:

    【解决方案2】:

    您可以使用此代码

    command = kb.nextline();
    String newline = System.getProperty("line.separator");
    boolean hasNewline = command.contains(newline);
    if(!hasNewline)
    {
        performProcess(command);
    }
    

    【讨论】:

    • 谢谢托尼。这并不完全是我所需要的,但它让我想到了一个行之有效的想法。而不是检查新行,我只是要 trim() 命令然后检查一个空字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 2022-12-24
    • 2015-04-04
    • 2013-12-02
    相关资源
    最近更新 更多