我想将包含土耳其语字符的字符串转换为小写,土耳其字符映射到英语等价物,即"???Ç"- > "igsc".
当我使用toLowerCase(new Locale("en", "US"))功能,其转换例如?到i,但用虚线.
我怎么解决这个问题?(我使用的是Java 7)
谢谢.
Arn*_*aud 11
你可以
1)首先,删除重音:
以下内容来自此主题:
使用java.text.Normalizer为您处理此问题.
string = Normalizer.normalize(string, Normalizer.Form.NFD);
Run Code Online (Sandbox Code Playgroud)
这会将所有重音符号与字符分开.然后,你只需要将每个角色与一个字母进行比较,然后扔掉那些不是.
string = string.replaceAll("[^\\p{ASCII}]", "");
Run Code Online (Sandbox Code Playgroud)
如果你的文字是unicode,你应该使用它:
string = string.replaceAll("\\p{M}", "");
Run Code Online (Sandbox Code Playgroud)
对于unicode,\ P {M}匹配基本字形,\ p {M}(小写)匹配每个重音.
2)然后,将剩下的放在String小写字母中
string = string.toLowerCase();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |