在|上拆分字符串 Java中的(管道)

我有以下文字: ARIYALUR:ARIYALUR|CHENNAI:CHENNAI|COIMBATORE:COIMBATORE|CUDDALORE:CUDDALORE|DINDIGUL:DINDIGUL|ERODE:ERODE|KANCHEEPURAM:KANCHEEPURAM|KANYAKUMARI:KANYAKUMARI|KRISHNAGIRI:KRISHNAGIRI|MADURAI:MADURAI|NAMAKKAL:NAMAKKAL|NILGIRIS:NILGIRIS|PERAMBALUR:PERAMBALUR|PONDICHERRY:PONDICHERRY|SALEM:SALEM|THANJAVUR:THANJAVUR|THENI:THENI|THIRUVALLUR:THIRUVALLUR|THOOTHUKUDI:THOOTHUKUDI|TIRUNELVELI:TIRUNELVELI|VELLORE:VELLORE|VILLUPURAM:VILLUPURAM|VIRUDHUNAGAR:VIRUDHUNAGAR|

我试图进行split("|")但我的数组由单个字符而不是每个区组成。

| 是正则表达式中的特殊符号。 使用\\| 代替。

我会解释为什么我附加了2条斜杠。 逃避| ,我需要\| 。 但是,要表示字符串\|"\\|" 是必需的,因为\本身需要以字符串横向转义。

而且,正如xagyg在评论中指出的那样,split会将参数视为正则表达式。 它不会被视为普通字符串。

在这个用例中,您可能有兴趣了解Pattern.quote 。 你可以做Pattern.quote("|") 。 这样,所有字符都不会被视为特殊字符。

您需要在meta char之前使用escape char 哪个代表OR此外,由于您需要将split中的正则表达式作为String传递,因此您还需要转义转义字符。

试试以下:

  String str = "ARIYALUR:ARIYALUR|CHENNAI:CHENNAI|COIMBATORE:COIMBATORE|CUDDALORE:CUDDALORE|DINDIGUL:DINDIGUL|ERODE:ERODE|KANCHEEPURAM:KANCHEEPURAM|KANYAKUMARI:KANYAKUMARI|KRISHNAGIRI:KRISHNAGIRI|MADURAI:MADURAI|NAMAKKAL:NAMAKKAL|NILGIRIS:NILGIRIS|PERAMBALUR:PERAMBALUR|PONDICHERRY:PONDICHERRY|SALEM:SALEM|THANJAVUR:THANJAVUR|THENI:THENI|THIRUVALLUR:THIRUVALLUR|THOOTHUKUDI:THOOTHUKUDI|TIRUNELVELI:TIRUNELVELI|VELLORE:VELLORE|VILLUPURAM:VILLUPURAM|VIRUDHUNAGAR:VIRUDHUNAGAR|"; String [] tokens = str.split("\\|"); 
 public static String[] splitWord(String x){ String[] j = new String [200]; for(int i=0;i 

我为这些类型的情况想出了这种方法。 要使用它,请调用方法并指定您需要访问的单词:

 Classname.splitWord(String)[word in array];