当前位置:编程学习 > JAVA >>

反斜杠“\”转换为“\\”问题,求解


package com.test;
public class Test01 {

public static void main(String[] args) {
String s = "d:\2012-05.xls";
System.out.println(s.replaceAll("\\\\", "\\\\\\\\"));

}
}

结果为啥子是d:?2-05.xls
而不是d:\\2012-05.xls --------------------编程问答--------------------
引用楼主  的回复:
Java code

package com.test;
public class Test01 {

    public static void main(String[] args) {
        String s = "d:\2012-05.xls";
        System.out.println(s.replaceAll("\\\\", "\\\\\\\\"));
   ……


String s = "d:\2012-05.xls";


这个地方就应该转义
String s = "d:\\2012-05.xls";

或者
String s = "d:/2012-05.xls";
--------------------编程问答--------------------
引用 1 楼  的回复:
引用楼主  的回复:
Java code

package com.test;
public class Test01 {

public static void main(String[] args) {
String s = "d:\2012-05.xls";
System.out.println(s.replaceAll("\\\\", "\\\\\\\\"));
……
……
就是不知道怎么转啊,求解 --------------------编程问答-------------------- 你的路径本身就是有问题的
d:\2012-05.xls 应该是 d:\\2012-05.xls

\201 系统会认为是一个字符,replaceAll是正则匹配,在字符串中找不到'\',所以结果就会是d:?2-05.xls,为原字符。


你可以加一个System.out.println(s);测试一下 --------------------编程问答--------------------
引用 3 楼  的回复:
你的路径本身就是有问题的
d:\2012-05.xls 应该是 d:\\2012-05.xls

\201 系统会认为是一个字符,replaceAll是正则匹配,在字符串中找不到'\',所以结果就会是d:?2-05.xls,为原字符。


你可以加一个System.out.println(s);测试一下
我从jsp页面取过来(取的本地路径)打印出来就是d:\2012-05.xls --------------------编程问答-------------------- 那就对了,打印出来是d:\2012-05.xls路径就是对的,应为java里要得到\ 必须用 \\
路径已经是d:\\2012-05.xls了,不用作任何转义 --------------------编程问答--------------------
引用 5 楼  的回复:
那就对了,打印出来是d:\2012-05.xls路径就是对的,应为java里要得到\ 必须用 \\
路径已经是d:\\2012-05.xls了,不用作任何转义

但是这样我用jxl去读的话就是Workbook.getWorkbook("d:\2012-05.xls");这样就报错啊 --------------------编程问答-------------------- 那就换种方式好了,你不是从jsp里画面取得的吗,那就试试用Workbook.getWorkbook(formFile.getPath()); --------------------编程问答-------------------- /斜杠是真确的路径表示方法但是也可以用 \\斜杠来表示就是不能用单\来表示。而且你写代码没有报错吗?
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,