Java 拆分包含两个特殊字符的字符串

Java 拆分包含两个特殊字符的字符串,java,Java,我有一个字符串值,如下所示: TE\;R20\;T11\;19 我想把它分成TE,R20,T11和19。我尝试对其应用split方法,但不幸的是,它仍然无法正确分割字符串 这是我的源代码 String description1 = CSVdata2[7]; System.out.println("The description1 is :"+description1); String email1 = CSVdata2[2]; String [] data1 = description1.sp

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

TE\;R20\;T11\;19
我想把它分成
TE
R20
T11
19
。我尝试对其应用
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\

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

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

    String s = "TE\\;R20\\;T11\\;19";
String arr[] = s.split("\\\\;");
    System.out.println(Arrays.toString(arr));
要转义
\
,您需要使用
\

OP:

[TE, R20, T11, 19]
输出为:
特\;R20\;T11\;19
TE
R20
T11
十九,

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

publicstaticvoidmain(String[]args){
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]+" ");
    }
}
String name=“TE\\;R20\\;T11\\;19”; 字符串a[]=name.split(“\\;”); 对于(int i=0;i,使用
“Pattern.quote”
可以拆分字符串

输出:

[TE,R20,T11,19]


String[]parts=inputString.split(“\\\\”);
我无法将我的字符串更改为TE\\;R20\\;T11\\;19@yumi您不必转换。在Java中,
String
中不允许使用single\。因此,在您的代码中
description1
已经包含
“TE\\;R20\\\;T11\\\;19”
。只需使用
description1.split(\\\\;)
哈哈,我想我不明白你的意思。因为我不确定java如何处理“\\\”和“\\”我不能将我的字符串更改为TE\\;R20\\;T11\\;19。只允许“\\”而不允许“\\”
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]+" ");
    }
}
String separator = "\\;";
String value = "TE\\;R20\\;T11\\;19";
String[] arrValues = value.split(Pattern.quote(separator));

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