怎么样将字符串中所有的"\"替换成"\\"???

nwpulipeng 2004-07-02 11:04:43
rt
将"C:\tmp\bin"变成"C:\\tmp\\bin"???
应该怎么做???
...全文
334 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitangli3 2004-07-02
  • 打赏
  • 举报
回复
小弟愚钝
楼主所要解决的"\temp"换成"\\temp"
好象还不能实现
Znet 2004-07-02
  • 打赏
  • 举报
回复
imA()的实例代码很好。
楼主运行一下自然就明白了。

pubic class Test
{
public static void main(String[] args)
{
System.out.println("C:\tmp\bin");
System.out.println("C:\\tmp\\bin");
System.out.println("C:\\\\tmp\\\\bin");
}
}
blasterboy 2004-07-02
  • 打赏
  • 举报
回复
replaceAll("\\\\","\\\\\\\\"));
lansb1 2004-07-02
  • 打赏
  • 举报
回复
可以把字符分开.

System.out.println("\\" + "\\" + "\\");
想要几个就几个.
ricleon 2004-07-02
  • 打赏
  • 举报
回复
有个专门替换字符串的方法,一时想不起来了,你找书看看~
binny 2004-07-02
  • 打赏
  • 举报
回复
怎么说呢,昨天刚刚给人解释了半天这个问题

楼主如果打印出来是"C:\tmp\bin",

那在你的程序里不是"C:\tmp\bin"这种东西,而是"C:\\tmp\\bin"

所以一般情况下呢是不需要将所谓的"C:\tmp\bin"变成"C:\\tmp\\bin"的

特殊情况除外:你想打印出来的就是"C:\\tmp\\bin"

那就看nc201(Bricklayer)的回答

另外,楼主凑的例子还真强'\t'、'\b'编译不会出错,呵呵


imA 2004-07-02
  • 打赏
  • 举报
回复
我的程序,运行一下看看,其实就是用java的转义符。就是那个思路,答案不就出来了!!!!!
haitangli3 2004-07-02
  • 打赏
  • 举报
回复
楼主的问题好象还没有答案
imA 2004-07-02
  • 打赏
  • 举报
回复
pubic class Test
{
public static void main(String[] args)
{
System.out.println("C:\tmp\bin");
System.out.println("C:\\tmp\\bin");
System.out.println("C:\\\\tmp\\\\bin");
}
}
Philzzf 2004-07-02
  • 打赏
  • 举报
回复
String t="C:\\tmp\\bin";
System.out.println(t.replaceAll("\\\\","\\\\\\\\"));
101monster 2004-07-02
  • 打赏
  • 举报
回复
呵呵,UP!按字符读!
nwpulipeng 2004-07-02
  • 打赏
  • 举报
回复
To bonyat() :
对!我的意思你说对了。Java的不管replace方法还是split方法,都是基于正则表达式的,但是正则表达式对于"\\"是不认的,所以都不能解决这个问题。
最后我想到用8位的字节流来处理,已经搞定了:

public static String TranDirectory(String content)
{
String result = "";
int startPoint = 0;
byte[] testBye = content.getBytes();
for(int i=0;i<testBye.length;i++)
{
if(testBye[i]==92)
{
result += content.substring(startPoint,i);
result += "\\\\";
startPoint = i+1;
}
}
result += content.substring(startPoint,testBye.length);
return result;
}
调用TranDirectory("C:\tmp\bin");就返回"C:\\tmp\\bin"
呵呵,很轻松搞定!
MyXin 2004-07-02
  • 打赏
  • 举报
回复
楼上:不行的。只要你在Java中写“”或new String,都已经将\t等转换拉。
shuneng 2004-07-02
  • 打赏
  • 举报
回复
mark
bonyat 2004-07-02
  • 打赏
  • 举报
回复
这样行不行:
getBytes
转义字符的byte应该都在空格(23?)以下
凡是小于空格的都作相应的转换

呵呵
bonyat 2004-07-02
  • 打赏
  • 举报
回复
搂主的意思是初始字符串是单斜杠(\)
这样java会把(\)和后面的字符当作一个转义字符来用
这样就无法使用replace方法了

java应该能够解决这个问题,可惜我不懂,嘿嘿。
能不能在java之前解决,呵呵,如果是jsp来的数据,在页面上用js先搞定
MyXin 2004-07-02
  • 打赏
  • 举报
回复
String k = "C:\temp\\temp2\\\temp3"; 爽把!
Acylas 2004-07-02
  • 打赏
  • 举报
回复
str = jtxtPath.getText();//"D:\\doc\\temp";
System.out.println(str.replaceAll("\\\\", "\\\\\\\\"));
你将str.replaceAll("\\\\", "\\\\\\\\")传给c++就可以了
haitangli3 2004-07-02
  • 打赏
  • 举报
回复
顶起来
楼主到时多给点
nwpulipeng 2004-07-02
  • 打赏
  • 举报
回复
to binny(骑个破车看夕阳):
不是的,实际情况是这样:是在界面上由用户输入的文件路径,然后我取到这个路径,最后要把它中的所有的反斜杠转换成两个反斜杠后传出去(传到c++程序做处理),这个是c++要求的
所以说并不是打印出来的就是"C:\tmp\bin",而是一个字符串本身就是单斜杠的,我要转成双斜杠^_^
加载更多回复(2)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧