Java中的新行字符表示

Dim*_* R. 3 java regex string

我在数据库中有一个看起来像这样的字段

abcd.\nefgh
Run Code Online (Sandbox Code Playgroud)

在Java方面,我把它变成一个变量(消息),需要将该变量分成两部分:第一部分和第二部分.

像这样的东西:

message="abcd.\nefgh" ;//This is not what happens ???
first = //Anything before '\n'
second = //Anything after '\n'
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容

if(message.indexOf('\n')>-1){
  first = message.substring(0, message.indexOf('\n'));
  second = message.substring(message.indexOf('\n')) ;
}
Run Code Online (Sandbox Code Playgroud)

但是,我的代码永远不会进入if语句的主体.我检查了调试器,它显示我的消息变量确实是

abcd.\\nefgh
Run Code Online (Sandbox Code Playgroud)

所以,我尝试使用String.split方法,

String rabit = "Abcd\\nEfgh" ;
System.out.println("Results \n "+  rabit.split("\n")) ; //1
//and alternative
System.out.println("Results \n "+  rabit.split("\\n")) ; //2
Run Code Online (Sandbox Code Playgroud)

但是,这是问题所在.在1和2输出中,我得到一个只有一个元素的数组. - 完整的消息.找不到模式.

那么,任何人都可以提供帮助 - 这里的问题是什么?我的变量消息来自数据库的事实是\n?还有其他建议吗?我该如何解决这个问题?

man*_*uti 9

如果字符串包含文字,\n那么在分隔符正则表达式中需要四个转义字符split:

rabit.split("\\\\n")
Run Code Online (Sandbox Code Playgroud)