String t="C:\\tmp\\bin";
        System.out.println(t.replaceAll("\\\\","\\\\\\\\"));

解决方案 »

  1.   

    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");
    }
    }
      

  2.   

    我的程序,运行一下看看,其实就是用java的转义符。就是那个思路,答案不就出来了!!!!!
      

  3.   

    怎么说呢,昨天刚刚给人解释了半天这个问题楼主如果打印出来是"C:\tmp\bin",那在你的程序里不是"C:\tmp\bin"这种东西,而是"C:\\tmp\\bin"所以一般情况下呢是不需要将所谓的"C:\tmp\bin"变成"C:\\tmp\\bin"的特殊情况除外:你想打印出来的就是"C:\\tmp\\bin"那就看nc201(Bricklayer)的回答另外,楼主凑的例子还真强'\t'、'\b'编译不会出错,呵呵
      

  4.   

    可以把字符分开.System.out.println("\\" + "\\" + "\\");
    想要几个就几个.
      

  5.   

    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");
    }
    }
      

  6.   

    小弟愚钝
    楼主所要解决的"\temp"换成"\\temp"
    好象还不能实现
      

  7.   

    我的意思是在不知道源字符串的情况下进行转换
    要有一个通用的方法,nc201(Bricklayer) 的方法是可行,但是你怎么样把源字符串中的所有的反斜杠转换成两个反斜杠呢??这是我最终要解决的问题
    我等。。
    我就不信没有高手
      

  8.   

    to binny(骑个破车看夕阳):
    不是的,实际情况是这样:是在界面上由用户输入的文件路径,然后我取到这个路径,最后要把它中的所有的反斜杠转换成两个反斜杠后传出去(传到c++程序做处理),这个是c++要求的
    所以说并不是打印出来的就是"C:\tmp\bin",而是一个字符串本身就是单斜杠的,我要转成双斜杠^_^
      

  9.   

    str = jtxtPath.getText();//"D:\\doc\\temp";
    System.out.println(str.replaceAll("\\\\", "\\\\\\\\"));
    你将str.replaceAll("\\\\", "\\\\\\\\")传给c++就可以了
      

  10.   

    String k = "C:\temp\\temp2\\\temp3";  爽把!
      

  11.   

    搂主的意思是初始字符串是单斜杠(\) 
    这样java会把(\)和后面的字符当作一个转义字符来用
    这样就无法使用replace方法了java应该能够解决这个问题,可惜我不懂,嘿嘿。
    能不能在java之前解决,呵呵,如果是jsp来的数据,在页面上用js先搞定
      

  12.   

    这样行不行:
    getBytes
    转义字符的byte应该都在空格(23?)以下
    凡是小于空格的都作相应的转换呵呵
      

  13.   

    楼上:不行的。只要你在Java中写“”或new String,都已经将\t等转换拉。
      

  14.   

    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"
    呵呵,很轻松搞定!