如何在 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?

如何在 Java 中将日历转换为 java.sql.Date?

如何在 Java 中将 String 转换为 int?

如何在 Java 中将 String 转换为 int?

java 如何在Java中将String转换为int?