Java .split(" |")无效

时间:2015-09-22 11:22:32

标签: java string split

我遇到的问题是split method字符串不能与字符" |"作为一个论点。它以某种方式分隔字符串中的每个字符。

代码:

    self.b3 = tk.Button(self, ...)
    self.b4 = tk.Button(self, ...)
    self.b5 = tk.Button(self, ...)

输出:

String[] res = "12345|6".split("|");
Log.d("split", Arrays.toString(res));

6 个答案:

答案 0 :(得分:6)

在|之前使用转义字符如下所示:

String[] res = "12345|6".split("\\|");
  

当你这样做时,需要类似的“转义字符逻辑”   使用以下任何特殊字符进行处理/拆分(由   定期表现:

或签署(|)

问号(?)

星号(*)

加号(+)

反斜杠()

期间(。)

插入符号(^)

方括号([和])

美元符号($)

&符号(&)

答案 1 :(得分:5)

你可以试着像这样逃避:

String[] res = "12345|6".split("\\|");

Pipe在正则表达式中具有特殊含义,它允许对正则表达式组件进行逻辑OR运算。所以你需要使用\\

来逃避它

答案 2 :(得分:1)

您可以轻松简单地尝试一下。

String [] res =“ 12345 | 6” .split(“ [|]”);

答案 3 :(得分:0)

如果使用“ ||”分割然后您使用:

      yourstring.split(Pattern.quote("||"))

答案 4 :(得分:-1)

public static void main(String[] args) {
    String data = "12345|6|7|990";
    String[] arr = data.split("\\|");
    for(int i = 0 ; i< arr.length; i++){
      System.out.println(arr[i]);
    }
  }

O/p : 12345
6
7
990

答案 5 :(得分:-3)

但是,我已经找到了一个快速解决方法:使用ASCII代码作为参数 - &gt;

String[] res = "12345|6".split("\\x7C");
Log.d("split", Arrays.toString(res));

输出:

split﹕ [12345, 6]

只是想在这里分享一下,所以其他有相同问题的人也可以使用此修复程序。 :)