Bal*_*usC 31
这就是普遍的共识:
小写字符串.
string = string.toLowerCase();
Run Code Online (Sandbox Code Playgroud)标准化所有字符并去除所有变音符号(例如é,ö,à变为e,o,a).
string = Normalizer.normalize(string, Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
Run Code Online (Sandbox Code Playgroud)替换所有剩余的非字母数字字符,-并在必要时折叠.
string = string.replaceAll("[^\\p{Alnum}]+", "-");
Run Code Online (Sandbox Code Playgroud)总结如下:
public static String toPrettyURL(String string) {
return Normalizer.normalize(string.toLowerCase(), Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "")
.replaceAll("[^\\p{Alnum}]+", "-");
}
Run Code Online (Sandbox Code Playgroud)