private String getSanitizedPath(final String path) {
String sanitized = path;
while (true) {
int index = sanitized.indexOf("//");
if (index < 0) {
break;
}
else {
sanitized = sanitized.substring(0, index) + sanitized.substring(index + 1);
}
}
return sanitized;
}
这段代码的作用是对传入的路径字符串 path
进行清理,移除其中连续的双斜杠 //
,从而生成一个“干净”的路径。
代码解读:
getSanitizedPath
方法:- 接收一个
path
字符串,并使用sanitized
变量保存处理后的路径。 - 进入一个
while
循环,循环的条件是sanitized
字符串中是否还存在//
。 - 在每次循环中,使用
indexOf("//")
来查找字符串中连续双斜杠的位置。 - 如果找不到
//
(即index < 0
),跳出循环。 - 如果找到
//
,则将这个双斜杠移除。通过使用substring
方法,将sanitized
字符串中双斜杠前后的部分拼接在一起,跳过双斜杠本身。 - 循环继续,直到
sanitized
中不再存在双斜杠为止。 - 最终返回处理后的路径
sanitized
。
- 接收一个
重点说明:
- 作用:移除路径中不必要的连续双斜杠,防止路径格式异常。例如,输入
/path//to//file
,经过处理后会变成/path/to/file
。 - 性能:通过循环和字符串的拼接,每次都重新构造字符串。当路径特别长或双斜杠特别多时,可能会导致一定的性能开销。
- 逻辑:每次只移除第一个出现的双斜杠,处理完一个后继续寻找下一个,直到路径中不再包含
//
。