我正在创建文件路径的字符串表示。我正在使用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
,我仍然得到相同的结果。
答案 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);