牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2014-03-24 投稿人: 浏览次数:4904

问题1:

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


错误代码:

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

 

问题2:

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

 

错误代码:

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);
	}

}


 


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。