我正在努力在系统中支持Unicode字符,因此我想将字符拆分为包含泰米尔语字母的字符串。除了Java中的英语以外,我不知道要处理其他字符串。
String word = new String("தமிழ்")
String[] chars = word.split("")
[த,ம,ி,ழ,்]
[த,மி,ழ்]
答案 0 :(得分:0)
分配给“单词”的字符串实际上是5个Unicode字符。例如,第三个字符(U + 0BFF)与前一个字符(U + 0BAE?)组合在一起,形成一个显示的符号。
由于您将单词拆分为字符,因此将获得5个字符。原始字符串中没有显示这样的单个字符作为(例如)中间符号。
由于组合字符,屏幕上显示的符号表观数量不一定与Unicode字符数量相同。通常,呈现Unicode字符串的程序必须知道字符的组合。
有关this document的泰米尔语Unicode问题,请参见。图12-21讨论了i元音的声音,它是5的中间字符。
不清楚您要分割字符串的目的是什么。如果您真的想要“明显的符号”(我是用这个词补上的),那么您大概需要扫描生成的字符以寻找组合字符。
This document描述了一种似乎对您有用的方法,尽管页面上说JDK 8之后的发行版中有更好的功能,我没有花时间去寻找。不过,这可能会更全面地阐明正在发生的事情。