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
。谢谢。它是这样工作的。