我使用^
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
替换为其他角色的情况下修复它。
答案 0 :(得分:1)
答案 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(“\\ ^”)