Java 如何将字符串拆分为“\\&引用;

Java 如何将字符串拆分为“\\&引用;,java,regex,string,split,filepath,Java,Regex,String,Split,Filepath,如何用“\”拆分上面的字符串。我尝试了以下两种方法,但都不起作用 方法1: String s = "E:\Confluence_Attachments\ver003\10\85\" + "1835010\124\165\4915874\19169322\1"; 方法2: String pattern = Pattern.quote(System.getProperty("file.separator")); String[

如何用“\”拆分上面的字符串。我尝试了以下两种方法,但都不起作用

方法1:

        String s = "E:\Confluence_Attachments\ver003\10\85\"
            + "1835010\124\165\4915874\19169322\1";
方法2:

        String pattern = Pattern.quote(System.getProperty("file.separator"));
        String[] splittedFileName = s.split(pattern);

        System.out.println(" extractReqFields:  ");

        System.out.println(Arrays.toString(splittedFileName));
我从另一个方法获取以下字符串:

        //String pattern2 = "\\";
        //String[] splittedFileName2 = s.split(pattern);
        String[] splittedFileName2 = s.split("\\");

        System.out.println(" extractReqFields2222:  ");

        System.out.println(Arrays.toString(splittedFileName2));
所以我逃不过反斜杠。现在我如何用“\”来分割它

我是否应该使用正则表达式以编程方式添加转义字符,然后拆分

您能告诉我如何以编程方式添加转义字符吗

我能理解这里有一个答案:

但我的问题是如何通过编程添加转义字符。我需要帮助。

只要使用
“\\\\”
。Java将
“\\”
解释为一个
“\”
,因此
“\\\”
=
“\\”

输出:

只需使用
“\\\\”
。Java将
“\\”
解释为一个
“\”
,因此
“\\\”
=
“\\”

输出:

试试这个

 extractReqFields2222:  
[E:, Confluence_Attachments, ver003, 10, 85, 1835010, 124, 165, 4915874, 19169322, 1]
O/p

试试这个

 extractReqFields2222:  
[E:, Confluence_Attachments, ver003, 10, 85, 1835010, 124, 165, 4915874, 19169322, 1]
O/p


您正在使用
String.split的一个特殊功能。它不只是接受一个字符串,而是一个正则表达式!regex
“\\”
(一个反斜杠)根本不匹配任何东西。如其他答案所示,您必须避开反斜杠(使用另一个反斜杠)。对不起,我不理解您的编辑。要分割在反斜杠处得到的字符串,不需要转义字符串中的反斜杠。只有用于拆分的正则表达式中的反斜杠。这两个答案都有效。另一个评论是,您可以查看
Path
类来表示您的路径名,而不仅仅是将其拆分为一个数组。此外,您的方法1适用于我,并提供
[E:,Confluence_Attachments,ver003,10,85,1835010,124,165,4915874,19169322,1]
(没有在Windows上测试,所以没有保证,但我相信)。您使用的是
String.split的一个特殊功能。它不只是接受一个字符串,而是一个正则表达式!regex
“\\”
(一个反斜杠)根本不匹配任何东西。如其他答案所示,您必须避开反斜杠(使用另一个反斜杠)。对不起,我不理解您的编辑。要分割在反斜杠处得到的字符串,不需要转义字符串中的反斜杠。只有用于拆分的正则表达式中的反斜杠。这两个答案都有效。另一个评论是,您可以查看
Path
类来表示您的路径名,而不仅仅是将其拆分为一个数组。此外,您的方法1对我很有效,并提供
[E:,Confluence_Attachments,ver003,10,85,1835010,124,165,4915874,19169322,1]
(没有在Windows上测试,所以没有保证,但我相信)。
 extractReqFields2222:  
[E:, Confluence_Attachments, ver003, 10, 85, 1835010, 124, 165, 4915874, 19169322, 1]
 String s = "E:\\Confluence_Attachments\\ver003\\10\\85\\"
                + "1835010\\124\\165\\4915874\\19169322\\1";
       String[] splittedFileName2 = s.split("\\\\");

       System.out.println(" extractReqFields2222:  ");

       System.out.println(Arrays.toString(splittedFileName2));
extractReqFields2222:  
[E:, Confluence_Attachments, ver003, 10, 85, 1835010, 124, 165, 4915874, 19169322, 1]