Java String.indexOf()找不到System.lineSeparator();
我试图在FX中Java String.indexOf()找不到System.lineSeparator();,java,string,newline,Java,String,Newline,我试图在FX中TextArea的getText()中找到System.lineSeparator(),但这有点不相关。无论如何,我得到了以下一批代码: String newLine = System.lineSeparator(); String log = "Hello there!" + newLine + "I said hello!"; System.out.println(log); 上面的奇怪之处在于,即使它在控制台中输出良好,如下所示: Hello there! I said h
TextArea
的getText()
中找到System.lineSeparator()
,但这有点不相关。无论如何,我得到了以下一批代码:
String newLine = System.lineSeparator();
String log = "Hello there!" + newLine + "I said hello!";
System.out.println(log);
上面的奇怪之处在于,即使它在控制台中输出良好,如下所示:
Hello there!
I said hello!
如果我执行System.out.println(log.indexOf(newLine);
,我会在控制台上打印-1
,这意味着它没有找到它
如果执行System.out.println(log.indexOf(“\n”);
,则返回12
,这是正确的(因为换行符是日志中的第12个字符)
有人知道怎么回事吗?将以上评论作为答案发布:
如果我没记错的话,使用Swing和JTextArea,.getText()将所有的行分隔符转换为\n,而不考虑平台。我不知道它在FX的TextArea中是否工作相同,但这可能是一个开始查看的好地方。这里看起来不错:。无法复制:System.out.println(log.indexOf(newLine));
为我打印12(Windows)。对我来说也是如此。我已经将“\r\n”作为System.lineSeparator(Windows)了,它很好:12是returnedDamn。这有点令人困惑。谢谢你的提示,@OliCharlesworth