如何忽略拆分功能的换行符

时间:2013-08-26 08:44:42

标签: java split newline

我使用^ char分割字符串。我正在阅读的字符串来自一些外部来源。该字符串包含一些\n个字符。

字符串可能如下所示:

Hi hello^There\nhow are\nyou doing^9987678867abc^popup

当我像下面这样拆分时,为什么数组长度为2而不是4

String[] st = msg[0].split("^");
st.length //giving "2" instead of "4"

看起来,分裂在\n之后忽略了。

如何在不将\n替换为其他角色的情况下修复它。

4 个答案:

答案 0 :(得分:1)

split的字符串参数被解释为正则表达式。 所以你必须逃避char并使用:

st.split("\\^")

see this answer for more details

答案 1 :(得分:0)

如果您只想按^分割,那么

String[] st = msg[0].split("\\^");

如果我正确阅读了您的问题,您希望按^\n字符进行拆分,这样就足够了。

String[] st = msg[0].split("[\\^\\\\n]");

这认为\n字面意思是字符串中的2个字符。

答案 2 :(得分:0)

转义^个字符。请改用msg[0].split("\\^")

String.split将其论证视为正则表达式。由于^在正则表达式方面具有特殊含义,因此您需要转义以使用其文字表示。

答案 3 :(得分:0)

“^”它被JDK称为正则表达式 为避免这种混淆,您需要修改代码,如下所示 旧代码= msg [0] .split(“^”)
新代码= msg [0] .split(“\\ ^”)