返回列表 上一筆 下一筆

📄 資料內容

/**

 * Build address string from raw path.

 * - Split by '\' into segments.

 * - Skip count starts at 1 (so skip=2 means start from the 3rd segment).

 * - If there are fewer than 3 segments (no index=2), return "".

 * - Join remaining segments with '/'.

 */

private static String buildAddress(String rawPath, int skip) {

    if (rawPath == null || rawPath.isBlank()) return "";



    // Normalize: trim and remove leading/trailing '\'

    String s = rawPath.trim();

    if (s.startsWith("\\")) s = s.substring(1);

    if (s.endsWith("\\"))   s = s.substring(0, s.length() - 1);

    if (s.isEmpty()) return "";



    // Split by '\'

    String[] parts = s.split("\\\\");

    // We require at least 3 parts (index 0,1,2). If not, return blank.

    if (parts.length < 3) return "";



    // Skip logic: skip=1 means start at index=1, skip=2 means start at index=2, etc.

    int startIndex = skip;

    if (startIndex >= parts.length) return "";



    // Build output

    StringBuilder out = new StringBuilder();

    for (int i = startIndex; i < parts.length; i++) {

        String p = parts[i].trim();

        if (p.isEmpty()) continue;

        if (out.length() > 0) out.append('/');

        out.append(p);

    }

    return out.toString();

}

🔐 Base64 編碼內容

LyoqCgogKiBCdWlsZCBhZGRyZXNzIHN0cmluZyBmcm9tIHJhdyBwYXRoLgoKICogLSBTcGxpdCBieSAnXCcgaW50byBzZWdtZW50cy4KCiAqIC0gU2tpcCBjb3VudCBzdGFydHMgYXQgMSAoc28gc2tpcD0yIG1lYW5zIHN0YXJ0IGZyb20gdGhlIDNyZCBzZWdtZW50KS4KCiAqIC0gSWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gMyBzZWdtZW50cyAobm8gaW5kZXg9MiksIHJldHVybiAiIi4KCiAqIC0gSm9pbiByZW1haW5pbmcgc2VnbWVudHMgd2l0aCAnLycuCgogKi8KCnByaXZhdGUgc3RhdGljIFN0cmluZyBidWlsZEFkZHJlc3MoU3RyaW5nIHJhd1BhdGgsIGludCBza2lwKSB7CgogICAgaWYgKHJhd1BhdGggPT0gbnVsbCB8fCByYXdQYXRoLmlzQmxhbmsoKSkgcmV0dXJuICIiOwoKCgogICAgLy8gTm9ybWFsaXplOiB0cmltIGFuZCByZW1vdmUgbGVhZGluZy90cmFpbGluZyAnXCcKCiAgICBTdHJpbmcgcyA9IHJhd1BhdGgudHJpbSgpOwoKICAgIGlmIChzLnN0YXJ0c1dpdGgoIlxcIikpIHMgPSBzLnN1YnN0cmluZygxKTsKCiAgICBpZiAocy5lbmRzV2l0aCgiXFwiKSkgICBzID0gcy5zdWJzdHJpbmcoMCwgcy5sZW5ndGgoKSAtIDEpOwoKICAgIGlmIChzLmlzRW1wdHkoKSkgcmV0dXJuICIiOwoKCgogICAgLy8gU3BsaXQgYnkgJ1wnCgogICAgU3RyaW5nW10gcGFydHMgPSBzLnNwbGl0KCJcXFxcIik7CgogICAgLy8gV2UgcmVxdWlyZSBhdCBsZWFzdCAzIHBhcnRzIChpbmRleCAwLDEsMikuIElmIG5vdCwgcmV0dXJuIGJsYW5rLgoKICAgIGlmIChwYXJ0cy5sZW5ndGggPCAzKSByZXR1cm4gIiI7CgoKCiAgICAvLyBTa2lwIGxvZ2ljOiBza2lwPTEgbWVhbnMgc3RhcnQgYXQgaW5kZXg9MSwgc2tpcD0yIG1lYW5zIHN0YXJ0IGF0IGluZGV4PTIsIGV0Yy4KCiAgICBpbnQgc3RhcnRJbmRleCA9IHNraXA7CgogICAgaWYgKHN0YXJ0SW5kZXggPj0gcGFydHMubGVuZ3RoKSByZXR1cm4gIiI7CgoKCiAgICAvLyBCdWlsZCBvdXRwdXQKCiAgICBTdHJpbmdCdWlsZGVyIG91dCA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CgogICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykgewoKICAgICAgICBTdHJpbmcgcCA9IHBhcnRzW2ldLnRyaW0oKTsKCiAgICAgICAgaWYgKHAuaXNFbXB0eSgpKSBjb250aW51ZTsKCiAgICAgICAgaWYgKG91dC5sZW5ndGgoKSA+IDApIG91dC5hcHBlbmQoJy8nKTsKCiAgICAgICAgb3V0LmFwcGVuZChwKTsKCiAgICB9CgogICAgcmV0dXJuIG91dC50b1N0cmluZygpOwoKfQo=
返回列表 上一筆 下一筆