例如:String path = request.getServletContext().getRealPath("/") + "WordDir";
path在控制台输出为F:\workSpace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\cloudedu\WordDir2017120713194146bb0.docx
然后我使用path.replaceAll("\\", "\\\\");
结果并不能得到:
F:\\workSpace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\cloudedu\\WordDir2017120713194146bb0.docx
请大神解答!!!!!
'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\被java转换成\,\又被正则表达式转换成\。
可以直接用replace
path=path.replaceAll("\\\\", "\\\\\\\\");