簡體   English   中英

從字符串中刪除子字符串

[英]Removing a substring from a 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都不認為是真的。

您可以簡單地執行path.replaceAll("c:/lotus/notes/data", "") 如果字符串中包含前導路徑名,它將刪除該字符串,否則該字符串將不會更改。

把事情簡單化:

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

看一下Path界面:

它可用於完全滿足您的要求:提取有關路徑單個部分的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM