拆分包含两个特殊字符

时间:2018-01-19 03:14:07

标签: java

我有一个字符串值,如下所示:

TE\;R20\;T11\;19

我想将其拆分为TER20T1119。我尝试在其上应用split方法,但不幸的是,它仍然无法正确拆分字符串

这是我的源代码

String description1 = CSVdata2[7];
System.out.println("The description1 is :"+description1);
String email1 = CSVdata2[2];
String [] data1 = description1.split(";");
String ID1 = data1[0];
String [] data2 = SysID1.split("/");
String ID2 = data2[0];
System.out.println("The ID2 is :"+ID2);

这是我的示例输出

The description1 is :TE\;R20\;T11\;19
The ID2 is :TE\

我尝试在网上搜索一些方法,但我仍然无法将其拆分为我想要的字符串

4 个答案:

答案 0 :(得分:2)

您需要转义\,因为字符串\中有转义字符。请尝试以下代码:

    String s = "TE\\;R20\\;T11\\;19";
String arr[] = s.split("\\\\;");
    System.out.println(Arrays.toString(arr));

要转义\,您需要使用\

<强> OP:

[TE, R20, T11, 19]

答案 1 :(得分:1)

    String test = "TE\\;R20\\;T11\\;19";
    System.out.println(test);
    for(String sub : test.split("\\\\;"))
    {
        System.out.println(sub);
    }

输出是:
TE \; R20 \; T11 \; 19个
TE
R20
T11
19

我的简单代码。 String.split方法接受正则表达式字符串而不是单个字符进行拆分。

答案 2 :(得分:0)

public static void main(String[] args) {
    String name="TE\\;R20\\;T11\\;19";
    String a[]=name.split("\\\\;");
    for(int i=0;i<a.length;i++){
        System.out.print(a[i]+" ");
    }
}

答案 3 :(得分:0)

使用"Pattern.quote"我们可以拆分 字符串

String separator = "\\;";
String value = "TE\\;R20\\;T11\\;19";
String[] arrValues = value.split(Pattern.quote(separator));

 System.out.println(Arrays.asList(arrValues));

输出:

  

[TE,R20,T11,19]