Java:附加到字符串时无法删除反斜杠

时间:2016-07-22 13:23:01

标签: java

我正在创建文件路径的字符串表示。我正在使用Windows机器。

最终结果应如下所示:

C:\Users\this_is_me\workarea\Myapp\myapp\props\

相反它看起来像这样:

C:\Users\this_is_me\workarea\Myapp\myapp\\props\

错误是props之前的第二个反斜杠。我认为发生此错误是因为\p可能是正则表达式?

以下是我创建字符串的代码:

private final static String APP_HOME = "\\workarea\\Myapp\\myapp\\";
private final static String PROPS_HOME = "\\props\\";

public static String getPropsPath() {
    String propsHome = null;
    String userHome = System.getProperty("user.home");
    propsHome = userHome + APP_HOME + PROPS_HOME;

    return propsHome;
}

我尝试使用StringBuilder,我仍然得到相同的结果。

4 个答案:

答案 0 :(得分:3)

APP_HOME之后删除额外的反斜杠:

private final static String APP_HOME = "\\workarea\\Myapp\\myapp";
private final static String PROPS_HOME = "\\props\\";

propsHome = userHome + APP_HOME + PROPS_HOME;
System.out.println(propsHome);

<强>输出:

C:\Users\this_is_me\workarea\Myapp\myapp\props\

答案 1 :(得分:2)

APP_HOME以\结尾,PROPS_HOME以\开头,所以你得到它两次。

如果你真的想以这种方式构建路径,请删除一个反斜杠。但是还应该看一下File和Path类,它们更适合这类事情。

答案 2 :(得分:1)

看起来 APP_HOME 以反斜杠结尾, PROPS_HOME 以反斜杠开头,因此您会因连接而获得双重反弹。

答案 3 :(得分:0)

由于PROPS_HOME的第一个字母以\开头,而APP_HOME的结尾是\,你得到它两次,

propsHome = userHome + APP_HOME + PROPS_HOME.substring(1);