将包含土耳其语字符的String转换为小写

1 java string lowercase

我想将包含土耳其语字符的字符串转换为小写,土耳其字符映射到英语等价物,即"???Ç"- > "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)