Java中的新行字符表示

Java中的新行字符表示,java,regex,string,Java,Regex,String,我在数据库中有一个字段,如下所示 abcd.\nefgh 在Java方面,我将其放入一个变量(消息),并需要将该变量分为两部分:第一部分和第二部分 大概是这样的: message="abcd.\nefgh" ;//This is not what happens ??? first = //Anything before '\n' second = //Anything after '\n' 我尝试了以下方法 if(message.indexOf('\n')>-1){ first

我在数据库中有一个字段,如下所示

abcd.\nefgh
在Java方面,我将其放入一个变量(消息),并需要将该变量分为两部分:第一部分和第二部分

大概是这样的:

message="abcd.\nefgh" ;//This is not what happens ???
first = //Anything before '\n'
second = //Anything after '\n'
我尝试了以下方法

if(message.indexOf('\n')>-1){
  first = message.substring(0, message.indexOf('\n'));
  second = message.substring(message.indexOf('\n')) ;
}
但是,我的代码从未进入if语句的主体。 我使用调试器进行了检查,结果显示我的消息变量确实是

abcd.\\nefgh
因此,我尝试使用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
然而,问题就在这里。在1和2输出中,我得到一个只有一个元素的数组完整的信息。没有找到该模式


那么,有人能帮忙吗?这里有什么问题?事实上,我的变量消息来自数据库,\n?还有其他建议吗?如何解决此问题?

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

rabit.split("\\\\n")

看来已经有人回答了。在
Split
中使用
\\\\n
。谢谢。它是这样工作的。