我在数据库中有一个看起来像这样的字段
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?还有其他建议吗?我该如何解决这个问题?
答案 0 :(得分:9)
如果字符串包含文字\n
,则split
分隔符正则表达式中需要四个转义字符:
rabit.split("\\\\n")