class Solution {
public String simplifyPath(String path) {
String[] lu = path.split("/+");//正则,以一个或多个“/”进行切割。
Stack<String> sta = new Stack<>();
// System.out.println(Arrays.toString(lu));
String res = "";
for(int i = 0;i < lu.length;i++){
// System.out.println(lu[i]);
if(lu[i] == ""){
continue;
}else if(lu[i].equals(".")){
continue;
}else if(lu[i].equals("..")){//返回上一级,就删除最后一个进入栈的元素
if(!sta.empty()){
sta.pop();
}
}else{
sta.push(lu[i]);//进入栈
}
// System.out.println(res);
}
//拼接路径
for(String s: sta){
res += "/"+s;
}
//查看最后一个字符是否为“/”,是就删除。
int len = res.length();
if(len > 1 && res.charAt(len-1) == ‘/‘){
res = res.substring(0, res.length()-1);
}
return ("/"+res).replace("///","/").replace("//","/");
}
}