gpt4 book ai didi

java 字符串操作,将多条斜线改为一条斜线

转载 作者:行者123 更新时间:2023-11-29 07:37:12 26 4
gpt4 key购买 nike

愚蠢的错误是用+代替+

所有,我正在尝试将输入路径中的所有“/+”转换为“/”以简化 unix 样式路径。

 path.replaceAll( "/+", "/"); 
path.replaceAll( "\\/+", "/");

结果什么都没做,正确的做法是什么?

public class SimplifyPath {
public String simplifyPath(String path) {
Stack<String> direc = new Stack<String> ();
path = path.replaceAll("/+", "/");
System.out.println("now path becomes " + path); // here path remains "///"

int i = 0;
while (i < path.length() - 1) {
int slash = path.indexOf("/", i + 1);
if (slash == -1) break;
String tmp = path.substring(i, slash);
if (tmp.equals("/.")){
continue;
} else if (tmp.equals("/..")) {
if (! direc.empty()){
direc.pop();
}
return "/";
} else {
direc.push(tmp);
}
i = slash;
}
if (direc.empty()) return "/";
String ans = "";
while (!direc.empty()) {
ans = direc.pop() + ans;
}
return ans;
}

public static void main(String[] args){
String input = "///";
SimplifyPath test = new SimplifyPath();
test.simplifyPath(input);
}
}

最佳答案

您使用的是,而不是+。这是一个不同的角色。

替换

path = path.replaceAll("/+", "/");

path = path.replaceAll("/+", "/");

关于java 字符串操作,将多条斜线改为一条斜线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34174704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com