java中的“\”,“\\”等的替换

来源:互联网 发布:adobe软件下载网站 编辑:程序博客网 时间:2024/05/17 22:24

问题1:

   将windows下的路径D:\ico\test中的"\"替换成“\\”。


错误代码:

public class tang{public static void main(String[] args){// TODO Auto-generated method stubString parentPath = "D:\\ico\\test";parentPath = parentPath.replaceAll("\\", "\\\\");System.out.println(parentPath);}}

Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1\ ^at java.util.regex.Pattern.error(Pattern.java:1924)at java.util.regex.Pattern.compile(Pattern.java:1671)at java.util.regex.Pattern.<init>(Pattern.java:1337)at java.util.regex.Pattern.compile(Pattern.java:1022)at java.lang.String.replaceAll(String.java:2162)at tang.main(tang.java:9)

正确代码:

public class tang{public static void main(String[] args){// TODO Auto-generated method stubString parentPath = "D:\\ico\\test";parentPath = parentPath.replaceAll("\\\\", "\\\\\\\\");System.out.println(parentPath);}}

解释:

  我们原本想要将字符串“D:\ico\test”转化成“D:\\ico\\test”,所以想当然的是直接将“\”替换成“\\”,所以用的是replaceAll("\\", "\\\\")。
但实际上,变量存储字符串“D:\ico\test”的时候就是“D:\\ico\\test”,所以我们应该将变量存储的“\\”替换成“\\\\”,故使用replaceAll("\\\\",\\\\\\\\)。

 

问题2:

将windows下的路径D:\ico\test中的按照“\”拆分成数组。

 

错误代码:

public class tang{public static void main(String[] args){// TODO Auto-generated method stubString parentPath = "D:\\ico\\test";String[] tempStrings = parentPath.split("\\");for(String str : tempStrings)System.out.println(str);}}

正确代码:

public class tang{public static void main(String[] args){// TODO Auto-generated method stubString parentPath = "D:\\ico\\test";String[] tempStrings = parentPath.split("\\\\");for(String str : tempStrings)System.out.println(str);}}


 


0 0