Java中的新行字符表示

时间:2015-06-04 16:33:02

标签: 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 = 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?还有其他建议吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:9)

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

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