Java:测试字符串是否以换行符结尾

Dio*_*lor 1 java string

我想执行一个substring.equals("\n"). 在下面的代码中,我取最后一个字符并检查它是否是换行符。

String substring = nextResult.length() > 1 ? nextResult.substring(nextResult.length() - 1) : nextResult;            
return substring.equals("\n") ?  /* do stuff */ : /* do other stuff */;
Run Code Online (Sandbox Code Playgroud)

我只取最后一个字符因为Java采用\n为一体char。但是,从我所见,substring.equals("\n")返回true空格 ( " "),我认为是制表符 ( \t)。是这样吗?

如何正确检查字符串的结尾是否为换行符,或者至少该字符串是否为换行符?

bcs*_*001 5

您可以使用String#endsWith

boolean endsWithNewline = nextResult.endsWith("\n");
Run Code Online (Sandbox Code Playgroud)

或者String#charAt

boolean endsWithNewLine = nextResult.charAt(nextResult.length() - 1) == '\n';
Run Code Online (Sandbox Code Playgroud)

但是,您当前的代码对我来说很好用。也许您的输入中有某种拼写错误。