java 数字间的斜杠java 替换左斜杠

怎么将String里的反斜杠\替换为双斜杠\\啊,??? - Java - ITeye论坛
怎么将String里的反斜杠\替换为双斜杠\\啊,???
锁定老帖子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
发表时间:&&
相关知识库:
String replaceSlash(String src); {
if(src == null);
StringBuffer buffer = new StringBuffer(src.length();*2);;
for(int i=0;i&src.length();;i++); {
char c = src.charAt(i);;
System.out.println(c);;
if(c == '\\');
buffer.append("\\\\");;
buffer.append(c);;
return buffer.toString();;
不成功。。 How to do?
发表时间:&&
String s="sss\\sss";
如果你是jdk1.4以上的
s=s.replaceAll("\\\\","\\\\\\\\");
如果你找到了apache的common-lang包
s=mons.lang.StringUtils.replace(s,"\\","\\\\");
请登录后投票
发表时间:&&
zhenggc 写道String s="sss\\sss";
如果你是jdk1.4以上的
s=s.replaceAll("\\\\","\\\\\\\\");
如果你找到了apache的common-lang包
s=mons.lang.StringUtils.replace(s,"\\","\\\\");
我测试如下
String path = "d:\temp\1";
System.out.println("path:" + path.replaceAll("\\\\","\\\\\\\\"));
当path里有转入符\t,\b等会出现错误!
我把path存在database里,现在取出来要将\替换为\\
怎样彻底实现呢????
请登录后投票
java200408
发表时间:&&
String s="asdfas\asdf\asdf\\asdf\";
s=s.replaceAll("\","\\");
这个可以吗?
请登录后投票
发表时间:&&
看看正则表达式就可以了
请登录后投票
跳转论坛:移动开发技术
Web前端技术
Java企业应用
编程语言技术5511人阅读
Java学习笔记(8)
& & & &在编程过程中,需要将一个字符串中的反斜杠(\)全部替换成(\\),很简单的操作但是很容易报错。
& & & &比如:String filePath &= &&D:\daxiang\test\daxiang.jpg& ;
& & & &开始时,调用 replaceAll()方法以为就能替换的代码如下:
& & & &filePath &= &filePath.replaceAll(&\&,&\\&);
& & & &但程序会报正则表达式的错误。&&&&&&&&&&&&&&&&&&&&&&
经过网上查找一些例子,将错误原因和解决方法总结如下:
& & & &在不同的系统中,路径的分隔符不同,故需要做出判断,并切换分隔符
(1)Java把字符串中的反斜杠(\)替换成(\\)
& & & &Java中的replaceAll()方法要用4个反斜杠,表示一个反斜杠
& & & & replaceAll()方法实际是采用正则表达式的规则去匹配的。在regex中&\\&表示一个&\&,在java中一个&\&也要用&\\&表示。这样,前一个&\\&代表regex中的&\&,后一个&\\&代表java中的&\&,所以字符串转义一次,正则转义一次,那么一个斜扛要写4个,要想使用replaceAll()方法将字符串中的反斜杠(\)替换成(\\),则需要这样写:replaceAll(&\\\\&,&\\\\\\\\&)
& & & &str1=&aa\bbb&; str2=&aa'bbb& ;
& & & &要想替换成
& & & &str1=&aa\\bbb&;str2=&aa\'bbb& ;
& & & &必须这样替换:
& & & &str1 = str1.replaceAll(&\\\\&,&\\\\\\\\&) ;
& & & &str2 =str2.replaceAll(&'&, &\\\\'&) ;
(2)Java把字符串中的反斜杠(/)替换成(\)
& & & &replaceAll(&/&,&\\\\&) ;
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21058次
排名:千里之外
原创:13篇
转载:20篇
(1)(1)(1)(4)(16)(6)(6)【已解决】jsp中将反斜杠替换为斜杠 - 推酷
【已解决】jsp中将反斜杠替换为斜杠
KindEditor中上传图片后,在Chrome中正常显示:
但是在Firefox中却无法显示:
经过调试发现,原来是URL:
内部相关部分代码是:
//文件保存目录路径
String getRequestURI = request.getRequestURI();
out.println(&getRequestURI=& + getRequestURI);
// getRequestURI=/xxxxxx/lib/kindeditor/jsp/upload_json.jsp
StringBuffer getRequestURL = request.getRequestURL();
out.println(&getRequestURL=& + getRequestURL);
// getRequestURL=http://127.0.0.1:8080/xxxxxx/lib/kindeditor/jsp/upload_json.jsp
String getContextPath = request.getContextPath();
out.println(&getContextPath=& + getContextPath);
// getContextPath=/xxxxxx
String getServletPath = request.getServletPath();
out.println(&getServletPath=& + getServletPath);
// getServletPath=/lib/kindeditor/jsp/upload_json.jsp
String servlerParentPath = new File(getServletPath).getParent();
out.println(&servlerParentPath=& + servlerParentPath);
// servlerParentPath=\lib\kindeditor\jsp
String servlerParentParentPath = new File(servlerParentPath).getParent();
out.println(&servlerParentParentPath=& + servlerParentParentPath);
// servlerParentParentPath=\lib\kindeditor
String kindeditorRootRelativePath = getContextPath + servlerParentParentP
out.println(&kindeditorRootRelativePath=& + kindeditorRootRelativePath);
// kindeditorRootRelativePath=/xxxxxx\lib\kindeditor
String serveletRealPath = application.getRealPath(getServletPath);
out.println(&serveletRealPath=& + serveletRealPath);
// follow line single slash replace with two slash, otherwise will error: Invalid unicode
// serveletRealPath=E:\\dev_install\\apache-tomcat\\apache-tomcat-7.0.25\\webapps\\xxxxxx\\lib\\kindeditor\\jsp\\upload_json.jsp
String serveletRealPathParent = new File(serveletRealPath).getParent();
out.println(&serveletRealPathParent=& + serveletRealPathParent);
// serveletRealPathParent=E:\dev_install\apache-tomcat\apache-tomcat-7.0.25\webapps\xxxxxx\lib\kindeditor\jsp
String serveletRealPathParentParent = new File(serveletRealPathParent).getParent();
out.println(&serveletRealPathParentParent=& + serveletRealPathParentParent);
// serveletRealPathParentParent=E:\dev_install\apache-tomcat\apache-tomcat-7.0.25\webapps\xxxxxx\lib\kindeditor
String appRootPath = serveletRealPathParentP
out.println(&appRootPath=& + appRootPath);
// appRootPath=E:\dev_install\apache-tomcat\apache-tomcat-7.0.25\webapps\xxxxxx\lib\kindeditor
String savePath = appRootPath + &/attached/&;
// String savePath = &E:\\dev_install\\apache-tomcat\\apache-tomcat-7.0.25\\webapps\\xxxxxx\\lib\\kindeditor\\attached&;
//文件保存目录URL
// String saveUrl
= request.getContextPath() + &/attached/&;
// String saveUrl
= appRootPath + &/attached/&;
String saveUrl
= kindeditorRootRelativePath + &/attached/&;
kindeditorRootRelativePath=/xxxxxx\lib\kindeditor
对应的,该URL在浏览器中无法显示:
所以问题转换为:
如何在jsp中,将反斜杠\替换为斜杠:
这样就可以把:
然后图片就可以正常显示了。
因为在路径中的斜杠,不论对于Windows还是Linux,都是可以识别的。
【折腾过程】
jsp backslash to slash
很明显,的确看起来是简单的:
.replace(&\\&, &/&)
就可以了。
但是,感觉还是有更好的办法才对。
发现里面的:
unescapeHtml
貌似是转义html的。
而不是我此处的url中,将反斜杠换成斜杠的。
3.所以还是简单的去:
String savePath = appRootPath + &/attached/&;
// String savePath = &E:\\dev_install\\apache-tomcat\\apache-tomcat-7.0.25\\webapps\\xxxxxx\\lib\\kindeditor\\attached&;
savePath = savePath.replaceAll(&\\&,&/&);
//文件保存目录URL
// String saveUrl
= request.getContextPath() + &/attached/&;
// String saveUrl
= appRootPath + &/attached/&;
String saveUrl
= kindeditorRootRelativePath + &/attached/&;
saveUrl = saveUrl.replaceAll(&\\&,&/&);
再去试试结果:
结果出错了。
4.再去搜:
jsp replaceAll
String replaceAll
replaceAll public
replaceAll( regex,
replacement)
Replaces each substring of this string that matches the given
with the given replacement.
An invocation of this method of the form str .replaceAll( regex , repl ) yields exactly the same result as the expression
.( regex ).( str ).( repl )
Note that backslashes ( \ ) and dollar signs ( $ ) in the replacement string may cause the results to be different than if it were being treated as a litera see
to suppress the special meaning of these characters, if desired.
Parameters:
regex – the regular expression to which this string is to be matched
replacement – the string to be substituted for each match
The resulting
– if the regular expression’s syntax is invalid
replace public
replace( target,
replacement) Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence. The replacement proceeds from the beginning of the string to the end, for example, replacing &aa& with &b& in the string &aaa& will result in &ba& rather than &ab&.
Parameters:
target – The sequence of char values to be replaced
replacement – The replacement sequence of char values
The resulting string
replacement is
replaceAll是正则的替换 -&反斜杠就有特别的转义的功能了。
replace才是普通的字符串的替换-&反斜杠没有特殊的功能,就只是反斜杠而已,所以可以正常替换
所以改为:
savePath = savePath.replace(&\\&, &/&);
saveUrl = saveUrl.replace(&\\&, &/&);
Jsp中,将反斜杠替换为斜杠,直接用:
yourStrValue = yourStrValue.replace(&\\&, &/&);
不要把replace写成(用正则的方式去替换的)replaceAll了。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致java后端(24)
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠&
例如& str1=&aa\bbb&; str2=&aa'bbb&;&
要想替换成 str1=&aa\\bbb&;str2=&aa\'bbb&;&
必须这样替换:&
&&&&&&&&&&& str1 = str1.replaceAll(&\\\\&, &\\\\\\\\&);&
&&&&&&&&&&& str2 = str2.replaceAll(&'&, &\\\\'&);&
原因如下:&
String 的 replaceAll() 方法,实际是采用正则表达式的规则去匹配的,&
\\\\& ,java解析为\\交给正则表达式,& 正则表达式再经过一次转换,把\\转换成为\&
也就是java里面要用正则来表示一个\. 必须写成4个\&
如果要表示\\,那就要写8个\&
所以如果写成: str1 = str1.replaceAll(&\\&, &\\\\&);&
就会报正则表达式的错误。&
还把有 反斜杠 换成 斜杠&
String path=&aaa\\bbb&;&
path=path.replace(&\\&, &/&);&
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28489次
排名:千里之外
原创:24篇
转载:33篇
(1)(2)(1)(1)(1)(2)(2)(1)(1)(1)(2)(1)(1)(1)(6)(1)(1)(2)(1)(2)(1)(2)(1)(3)(10)(6)(2)

我要回帖

更多关于 java 替换左斜杠 的文章

 

随机推荐