除了使用String.replaceAll()
方法和逐个替换字母以外,还有没有更好的方法来消除重音并使这些字母规则化?例:
输入: orčpžsíáýd
输出: orcpzsiayd
它不需要包含所有带有重音符号的字母,例如俄语字母或中文字母。
使用java.text.Normalizer
来处理这个给你。
string = Normalizer.normalize(string, Normalizer.Form.NFD);
// or Normalizer.Form.NFKD for a more "compatable" deconstruction
这会将所有重音符号与字符分开。然后,你只需要比较每个字符和一个字母,然后扔掉那些不是字母。
string = string.replaceAll("[^\\p{ASCII}]", "");
如果你的文本使用unicode
,则应改用以下代码:
string = string.replaceAll("\\p{M}", "");
对于unicode
,\\P{M}
匹配基本字形,\\p{M}
(小写)匹配每个重音。
问题内容: 除了使用方法和逐个替换字母以外,还有没有更好的方法来消除重音并使这些字母规则化?例: 输入: 输出: 它不需要包括所有带有重音符号的字母,例如俄语字母或中文字母。 问题答案: 使用java.text.Normalizer来处理这个给你。 这会将所有重音符号与字符分开。然后,您只需要比较每个字符和一个字母,然后扔掉那些不是字母。 如果您的文本使用unicode,则应改用以下代码: 对于,
我正在搜索一种转换服务器发送的字符串(JSON)的技术,该字符串包含以下内容:<code>…“Test\u00e9\u00e9\u002e9”…</code>在类似“Testé”的内容中,我找到了一个解决方案:<code>boost::replace_all(listFolder,\\u00e,é) ,我将这个boost函数与其他字母àùê等一起使用……这太痛苦了! 我想知道是否有函数自动执行这种
题目链接 NowCoder 题目描述 将一个字符串转换成一个整数,字符串不是一个合法的数值则返回 0,要求不能使用字符串转换整数的库函数。 // html Iuput: +2147483647 1a33 Output: 2147483647 0 解题思路 // java public int StrToInt(String str) { if (str == null || str.l
假设我有一个-我如何将拆分为一个包含每个
问题内容: 问题是,正如您所知道的,Unicode图表中有成千上万个字符,我想将所有类似的字符转换为英文字母。 例如,这里有一些转换: 我发现字母A / a有20多个版本。而且我不知道如何对它们进行分类。它们看起来像大海捞针。 Unicode字符的完整列表位于http://www.ssec.wisc.edu/~tomw/java/unicode.html 或http://unicode.org/c
一、题目 实现一个函数stringToInt,实现把字符串转换成整数这个功能,不能使用atoi或者其他类似的库函数。 二、解题代码 这看起来是很简单的题目,实现基本功能 ,大部分人都能用10行之内的代码解决。可是,当我们要把很多特殊情况即测试用例都考虑进去,却不是件容易的事。解决数值转换问题本身并不难,但我希望在写转换数值的代码之前,应聘者至少能把空指针,空字符串”“,正负号,溢出等方方面面的测试