从字符串中删除子字符串

时间:2013-11-26 18:03:11

标签: java string

我有一个非常简单的问题,只是无法让我的代码在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都没有评价为真。

3 个答案:

答案 0 :(得分:2)

您只需执行path.replaceAll("c:/lotus/notes/data", "")即可。如果它包含在字符串中,这将删除前导路径名,否则字符串将不会更改。

答案 1 :(得分:2)

保持简单:

path.replace("c:/lotus/notes/data", "");

答案 2 :(得分:0)

查看Path界面:

它用于完全按照您的意愿执行操作:提取有关路径单个部分的信息。