java,String.replaceAll中在替换路径(含有/或者/)容易出现的问题
2010-01-18 11:29
579 查看
在使用replaceAll(p,str)方式时,如果str中带有分隔符和$,则会出现很多问题。
1,在str中,对分隔符(File.separator),前面加上"//",然后使用replaceAll(p,str),此时在windows没问题。
在linux下,不会替换后面的$(即,替换后会得到$2,而不是匹配的字符串)。
(例子,str = "$1"+"abc"+"//"+File.separator+"123"+"//"+File.separator+"$2)
2,将1中,需要替换的路径字符串,extract to a local variable. 然后先用#ABC!(可以分辨的任意字符)替换,
然后在将#ABC!,使用原来的路径字符串替换掉。
这时,如果路径字符串中没有"//",会throw出StringIndexOutOfBoundException
最后成功的处理方式是2。
1,在str中,对分隔符(File.separator),前面加上"//",然后使用replaceAll(p,str),此时在windows没问题。
在linux下,不会替换后面的$(即,替换后会得到$2,而不是匹配的字符串)。
(例子,str = "$1"+"abc"+"//"+File.separator+"123"+"//"+File.separator+"$2)
2,将1中,需要替换的路径字符串,extract to a local variable. 然后先用#ABC!(可以分辨的任意字符)替换,
然后在将#ABC!,使用原来的路径字符串替换掉。
这时,如果路径字符串中没有"//",会throw出StringIndexOutOfBoundException
最后成功的处理方式是2。
相关文章推荐
- java replaceall方法替换String的几种特殊情况
- 探究java中String.replaceAll方法把换行符(\n)替换为明文显示(\n)为何需要四个反斜杠(\\\\n)
- Java:String 字符串的替换函数 replace replaceAll replaceFirst
- java String.replaceAll中特殊字符问题
- java正则表达式中replace和replaceall替换换行符的小问题
- 如何将java中的"/"替换为"/"以及replaceAll(String regex, String replacement) 注意事项
- java replaceAll常见问题1 --.java替换为.class
- java中字符串替换-String.replace StringreplaceAll
- Java替换字符串中的“\"”的处理方法(String.replaceAll的源码分析)
- 别说你不知道java中的包装类,wrapper type,以及容易在自动拆箱中出现的问题
- java string equal出现的问题
- java中String字符串的替换函数:replace与replaceAll的区别
- java中包容易出现的错误及权限问题
- java中String字符串的替换函数:replace与replaceAll的区别
- C#中如何实现JAVA中的String.replaceAll()方法功能
- java String replaceAll 对 “+”,“?”的处理
- Java List Copy,Remove容易出现的问题
- Java String.replaceAll()的方法
- JS正则表达式怎样实现Java中String.replaceAll的效果
- Tomcat配置虚拟路径容易出现的问题