Java 如何将字符串拆分为“\\&引用;
如何用“\”拆分上面的字符串。我尝试了以下两种方法,但都不起作用 方法1: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[
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]