我想把输入的一个字符串(路径)变成java识别的路径,比如输入“c:\Java\test”转化为:“c:\\Java\\test”,但是在输入字符串的过程中系统以为我要输入的是转义字符,所以报错,这个时候我怎么办呢?public class Check 
{ public static void main(String[] args) 
{
String testStr="c:\Java ";
for(int i=0;i<testStr.length();i++)
{
System.out.println(testStr.charAt(i));
}
}}
报错:转义序列无效(有效\b \t \n...)。

解决方案 »

  1.   

    public class Check 
    { public static void main(String[] args) 
    {
    String testStr="c:\\Java ";
    for(int i=0;i<testStr.length();i++)
    {
    System.out.println(testStr.charAt(i));
    }
    }}
    两个\\
      

  2.   

    你换个方式写啊!
    c:\Java\test可以写成
    c:\\Java\\test  也可以是
    c:/Java/test不就不是转义了
      

  3.   

    用"\\" 同理还有"\&"等等 "\"本身是转义符 用"\\"的话第一个就会把第二个转义 告诉系统第二个只是普通字符不是转义符号 所以就可以输出"\"
      

  4.   

    但是要让一个不清楚java路径输入的人去输入路径,他可能只会写成c:\Java\test,而我所做的就是把他输入的这个字符串转化为c:\\Java\\test,怎么办呢?前面几位都谢谢了,可能是我没有说清楚,对不起。
      

  5.   

    lz你要非要这么定义
    String testStr="c:\Java ";//就必须这么写String testStr="c:\\Java ";
    根据你所说的,既然是输入的话,那就不应该自己去定义一个字符串,而是通过输入来构成一个字符串,这里你输入"c:\Java",然后获取输入的串进行处理就可以了
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String testStr = br.readLine();
    testStr = testStr.replaceAll("\\\\","\\\\\\\\");//这样就把\换成\\这个了
      

  6.   

    我再插一句 上面HelloWorld_001() 提到的c:/Java/test 这种写法也是可行的 而且避免了转义的问题
    楼上举的
    testStr = testStr.replaceAll("\\\\","\\\\\\\\");
    这个列子是一个相当经典的列子 最好楼上的再给楼主讲一下为什么要那么写 ^_^
      

  7.   

    testStr.replaceAll("\\\\","\\\\\\\\");//这样就把\换成\\这个了
    在java 正则表达式中,"\\"表示一个正则表达式的反斜杆,而我们也知道在一般java程序中要表示一个反斜杆要用"\\",所以在正则表达式中的反斜杆就变成4根反斜杆了("\\\\")
      

  8.   

    package org.adio;public class Show
    {   public static void main(String[] args)
       {
       System.out.println("\\");
       }
    }
      

  9.   

    我们公司曾经有个哥们就用过 replaceAll("\\\\","\\\\\\\\") 开始他也是百思不得其解 后来终于弄明白了 跑到我们这边来跟发现了新大陆似的宣传 我们看了也都感觉挺有意思 有些东西还真的做项目才能发现 只靠主观想当然的想法有时是行不通的~