String str = "hi'dmh 100% a_b= 100\200";
我需要替换后的结果是:
str = "hi\'dmh 100\% a\_b= 100\\200";
我用下面这个,它把hi'dmh 替换成了hi\\'dmh 而不是我想要的 hi\'dmhstr = str.replaceAll("'","\\\\'");我最后要得到的打印结果应该是:hi\'dmh 100\% a\_b= 100\\200' 替换成\'
% 替换成\%
_ 替换成\_
\ 替换成 \\各位帮我一下吧
我需要替换后的结果是:
str = "hi\'dmh 100\% a\_b= 100\\200";
我用下面这个,它把hi'dmh 替换成了hi\\'dmh 而不是我想要的 hi\'dmhstr = str.replaceAll("'","\\\\'");我最后要得到的打印结果应该是:hi\'dmh 100\% a\_b= 100\\200' 替换成\'
% 替换成\%
_ 替换成\_
\ 替换成 \\各位帮我一下吧
解决方案 »
- java多线程读取文件处理
- 关于处理Excel的JXL中的SheetSettings
- blackberry 9500 "Roaming"状态下 Socket如何访问网络
- 关于 System.in.read()的基础问题
- 我问一下,在Double.parseDouble("25.001")时,输出的结果时25.000999999999,这样应该如何处理!
- 开贴给分,闲人莫进。
- 如何拆分一个字符串(Eg:"E:\resin\doc\programe\upload\qqq")大家帮帮忙!!!在线等!!!
- 郁闷!
- 新手求问,关于protected访问权限的问题
- java抽象类,接口,三大特征,this关键字,方法调用的综合应用
- java 链接问题
- 关于static 变量的引用~
楼主【7xin】截止到2008-07-05 15:29:51的历史汇总数据(不包括此帖):
发帖的总数量:15 发帖的总分数:800
结贴的总数量:13 结贴的总分数:780
无满意结贴数:0 无满意结贴分:0
未结的帖子数:2 未结的总分数:20
结贴的百分比:86.67 % 结分的百分比:97.50 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主加油
String str = "hi'dmh 100% a_b= 100\\200";
String regex = "\'|%|_|\\\\";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
StringBuffer sb = new StringBuffer(""); while(m.find())
{
int start = m.start();
int end = m.end();
String temp = str.substring(start, end); if(temp.equals("\'") || temp.equals("\\"))
{
temp = "\\" + temp;
} m.appendReplacement(sb, "\\\\" + temp);
} m.appendTail(sb);
//最终结果
String ret = sb.toString();
System.out.println(ret);
而替换操作是在运行期间做的,所以这里的 \ 已经没有了。\ 在 Java 中是特殊字符,其本身并不表示“\”!
public static void main(String[] args) {
String str = "hi'dmh 100% a_b= 100\\200";
System.out.println("Old: " + str);
String regex = "(?=['%_\\\\])";
str = str.replaceAll(regex, "\\\\");
System.out.println("New: " + str);
}
}输出结果:Old: hi'dmh 100% a_b= 100\200
New: hi\'dmh 100\% a\_b= 100\\200
str = Regex.Replace(str,@"([^a-zA-Z0-9 =]+)",@"\$1");完全符合楼主要求
抱歉,不知不觉写成.net的东西了String str = "hi'dmh 100% a_b= 100\200";str = str.replaceAll("([^a-zA-Z0-9 =])","\\\\$1");