2015-11-05 87 views
1

在我的Java代码中,我定义了一个字符串String strExample='abc\ndef'。现在我想分割它。所以我尝试获取字符串的长度。如何在从mysql读取数据时在java中分割“ n”?

int strArrlength=strExample.split("\n").length 

结果是2 但是当我尝试写strExample到MySQL表,然后从表中读取它,在相同的代码我得到的长度为1 我的开发环境是Windows 8.1,并且数据库安装在CentOS 6.5中。
有什么问题?我试图改变这样的代码:

strExample.split("\\n"),split("\r\n"),split("\n+"),split("\\r?\\n") 

但他们都返回1;

这是我的测试,但仍然无法正常工作。

private final static String  mHexStr1="5468697320697320612074657374EFBC815C6E204F6E6C792061207465737421"; 
public static void main(String[] args) { 
    String testStr=hexStr2Str(mHexStr1); 
    System.out.print(testStr+";"+testStr.split("\\n").length);//return 1 
    String abc="This is a test!\n Only a test!"; 
    System.out.println(abc+";"+abc.split("\n").length);//return 2 
} 
+0

你为什么使用'\ n'作为分隔符?为什么不是酒吧('|')? – dunli

+0

@ dunli,因为内容可能是一篇文章,它确实有'\ n'。 – flower

+0

将你的短文本字符串'abc \ ndef'存储在你的数据库中,然后在没有使用Java的mysql中执行'SELECT HEX()FROM WHERE <某些仅获取该测试记录的条件>'得到十六进制转储存储在数据库中的确切字符值。当您将存储的数据返回到Java中时,请转储字符串中的实际字符值。这会告诉你它是否按照你的预期存储,如果它在检索时发生了变化,以及你想要分割的是什么。 –

回答

1

你并不需要选择HEX content.Just替换数据\\n\n这是从MySQL读取。