问题1:
将windows下的路径D:\ico\test中的"\"替换成“\\”。
错误代码:
public class tang
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
String 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 stub
String 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 stub
String 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 stub
String parentPath = "D:\\ico\\test";
String[] tempStrings = parentPath.split("\\\\");
for(String str : tempStrings)
System.out.println(str);
}
}