如何在 Java 中将“Lorem 3 ipsum dolor sit amet”翻译成 SEO 友好的“Lorem-3-ipsum-dolor-sit-amet”?
Posted
技术标签:
【中文标题】如何在 Java 中将“Lorem 3 ipsum dolor sit amet”翻译成 SEO 友好的“Lorem-3-ipsum-dolor-sit-amet”?【英文标题】:How to translate "Lorem 3 ipsum dolor sit amet" into SEO friendly "Lorem-3-ipsum-dolor-sit-amet" in Java? 【发布时间】:2011-04-09 05:01:02 【问题描述】:在我的博客应用程序中,用户可以输入任何文本作为其条目的标题,然后我根据该文本生成一个 URL。
我验证了他们的标题以确保它只包含字母和数字。
如果他们输入类似
Lorem 3 ipsum dolor sit amet
如何生成对 SEO 更友好的文本版本:
Lorem-3-ipsum-dolor-sit-amet
【问题讨论】:
[slug]
标签似乎与问题有关。我开始寻找一些链接,例如***.com/questions/3224419/…
【参考方案1】:
实际上并不像用连字符替换空格那么简单。您通常还希望将其全部小写并规范化/替换变音符号,例如 á、ö、è 等,它们是 invalid URL 字符。唯一有效的字符在this Wikipedia page 的第二个表中列为“未保留字符”。
下面是这样一个函数的样子:
public static String prettyURL(String string)
return Normalizer.normalize(string.toLowerCase(), Form.NFD)
.replaceAll("\\pInCombiningDiacriticalMarks+", "")
.replaceAll("[^\\pAlnum]+", "-");
它基本上做了以下事情:
小写字符串 删除组合 diacritical marks(在 Normalizer 从实际字符中“提取”它们之后) 用连字符替换非字母数字字符另见:
JSP 2.0 SEO friendly links encoding【讨论】:
【参考方案2】:因为它似乎不允许我发表评论。我会这样做:
String s = "Lorem 3 ipsum dolor sit amet"
s = s.replaceAll(" ","_");
改用下划线字符,因为它是一个空格指示符。自从我完成 java 以来已经有一段时间了,但我知道 .Net 中有一个函数可以清理文件名,因此它对文件系统来说是安全的。我有很多相同的一般规则适用于 URL,所以如果你能在 API 中找到一个,那么值得一看。
【讨论】:
【参考方案3】:String s = "Lorem 3 ipsum dolor sit amet"
s = s.replaceAll(" ","-");
【讨论】:
以上是关于如何在 Java 中将“Lorem 3 ipsum dolor sit amet”翻译成 SEO 友好的“Lorem-3-ipsum-dolor-sit-amet”?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java 中将字符串读入 inputStream? [复制]
如何在 Java 11 中将 JavaFX 运行时添加到 Eclipse?