我有一个非常简单的问题,只是无法让我的代码在Java中工作。我想返回一个表示文件路径的字符串,但如果它存在则提取该路径的某个部分。
所以,我的输入可能是“c:/lotus/notes/data/directory/mydatabase.nsf”,我想只返回“directory / mydatabase.nsf”。有时,提供的路径已经省略了“c:/ lotus / notes / data /”,因为它是在服务器而不是本地访问的。
public String getDataPath ( String path ) {
int pathStart;
boolean pathContains;
String lowerPath;
lowerPath = path.toLowerCase();
pathStart = lowerPath.indexOf("c:/lotus/notes/data");
if ( pathStart >= 0) {
// 20 characters in "c:/lotus/notes/data/"
return path.substring(19);
}
pathContains = lowerPath.contains("lotus/notes/data");
if ( pathContains ) {
// 20 characters in "c:/lotus/notes/data/"
return path.substring(19);
}
return path;
}
这很简单,但不知何故,我做不到。我的if都没有评价为真。
答案 0 :(得分:2)
您只需执行path.replaceAll("c:/lotus/notes/data", "")
即可。如果它包含在字符串中,这将删除前导路径名,否则字符串将不会更改。
答案 1 :(得分:2)
保持简单:
path.replace("c:/lotus/notes/data", "");
答案 2 :(得分:0)