我有这段代码:
String message = receiveMessage();
String[] reciv = message.split("|");
System.out.println("mess: " + message);
System.out.println("reciv: " + reciv[0]);
这个输出:
mess: E|NAME
reciv:
我看起来很奇怪,E|NAME
是E|NAME*space**space**space**space**space**space**space*
...
我尝试复制“空格”,但我不能。我认为“空间”不是“空间”。
抱歉我的英语不好,我是西班牙语。
答案 0 :(得分:7)
split
使用正则表达式,而正则表达式|
具有特殊含义,因此"|"
表示空字符串""
或空字符串""
。拆分空字符串意味着
"ABC"
会在这些地方分开(我会用|
标记)
"|A|B|C|"
生成数组["", "A", "B", "C", ""]
,但split
documentation表示
因此,结尾的空字符串不包含在结果数组中
删除最后一个空格。所以你得到结果["", "A", "B", "C"]
现在,如果你想让它成为|
文字,你需要使用例如
split("\\|")
split("[|]")
。split(Pattern.quote("|"))
split("\\Q|\\E")
答案 1 :(得分:2)
你可以这样做
String message = receiveMessage();
message = message.replaceAll("[\n\r\\s]", "");
String[] str1 = message.split("[|]");
for (int i = 0; i < str1.length; i++) {
System.out.println(str1[i]);
}