是否有更好的方法来摆脱重音并使这些字母与使用String.replaceAll()方法和逐个替换字母分开?例:
输入: or?pžsíáýd
输出: orcpzsiayd
它不需要包括所有带有重音符号的字母,如俄语字母或中文字母.
我在看的算法,可以用变音符号(字符之间映射波浪,抑扬,插入符号,变音符号,卡隆)和他们的"简单"的角色.
例如:
? ? ? ñ ? ? ? ? ? ? ? ? ? ? ? --> n
á --> a
ä --> a
? --> a
? --> o
Run Code Online (Sandbox Code Playgroud)
等等.
我想用Java做这个,虽然我怀疑它应该是Unicode-y,并且应该可以在任何语言中合理地使用.
目的:允许轻松搜索带有变音符号的单词.例如,如果我有一个网球运动员数据库,并且输入了Björn_Borg,我还会保留Bjorn_Borg,这样如果有人进入Bjorn而不是Björn,我就能找到它.
我刚刚为Eclipse 安装了不必要的代码检测器并在我的项目上运行它.我看到很多所谓的"死代码".虽然从组织的角度来看,删除死/不必要的代码是有道理的,但它让我思考:
死代码实际上会阻碍Java应用程序的性能吗?!?!
对我来说,如果代码真的"死",它永远不会被执行,所以我不知道如何删除它(再次,除了组织/内务/代码清理目的)可以提高性能.
我需要将String包含某些特定于某些语言的字母(如HÄSTDJUR - noteÄ)的s 转换为String没有这些特殊字母(在本例中为HASTDJUR)的字母.我怎么能用Java做呢?感谢帮助!
这听起来并不是真的.方案如下 - 您想要使用该应用程序,但没有瑞典语键盘.因此,您不必查看字符映射,而是使用拉丁字母表中的典型字母替换特殊字母.
我已经找到了如何在stackoverflow上删除变音字符的答案,但是请你告诉我是否可以将变音字符改为非变音字符?
哦..我想到.NET(或其他如果不可能)
一个简单的问题:如何转换这个字符串:
\n\nFacultatea de \xc8\x98tiin\xc8\x9be Politice, Administrative \xc8\x99i ale Comunic\xc4\x83rii\nRun Code Online (Sandbox Code Playgroud)\n\n对此:
\n\nFacultatea de Stiinte Politice, Administrative si ale Comunicarii\nRun Code Online (Sandbox Code Playgroud)\n\n因此字符串中的所有特殊字符。
\n\n根据相关问题更新的解决方案
\n\n这可以通过一行代码来实现:
\n\nString convertedString = Normalizer.normalize(v.getName(), Normalizer.Form.NFD).replaceAll("[^\\\\p{ASCII}]", "");\nRun Code Online (Sandbox Code Playgroud)\n 我想格式化一些字符串,如"I>Télé"类似的东西"itele".这个想法是,我希望我的字符串是小写(完成),无空白字符(完成),无重音或特殊字符(如>,<,/,%,~,é,@,ï等).
删除特殊字符的出现是可以的,但是我想在删除重音时保留字母(就像我在我的例子中所做的那样).这就是我所做的,但我不认为好的解决方案是用"e"替换每个é,è,ê,ë,而不是为"i","a"等替换它,然后删除每一个特殊字符...
String name ="I>télé" //example
String result = name.toLowerCase().replace(" ", "").replace("é","e").........;
Run Code Online (Sandbox Code Playgroud)
这样做的目的是为Android应用程序提供有效的资源文件名,所以如果您有任何其他想法,我会接受它!
java ×7
string ×4
diacritics ×3
.net ×1
ascii ×1
character ×1
dead-code ×1
performance ×1
replace ×1
unicode ×1