我想比较字符串部分(即字符)与中文字符。我假设由于Unicode编码它计为两个字符,所以我以两个增量循环字符串。现在我遇到了一个路障,我试图检测'儿'字符,但equals()
不符合它,所以我错过了什么?这是代码片段:如何使用'equals()'比较Java中的中文字符
for (int CharIndex = 0; CharIndex < tmpChar.length(); CharIndex=CharIndex+2) {
// Account for 'r' like in dianr/huir
if (tmpChar.substring(CharIndex,CharIndex+2).equals("兒")) {
而且,随意提出一个更优雅的方式来解析这个...
[更新]从调试器的一些照片,显示出它不即使应该,也不匹配。我粘贴从我作为输入使用电子表格中的中国人的性格,所以我不认为这是一个复制和粘贴的问题(除非统一被沿途丢失)
哦,宕,显然它不工作只是复制和粘贴:
“我认为由于Unicode编码它算作两个字符”那么,为什么假设? '“儿”.toCharArray()。length()'告诉你明确的。 –
'儿'是[Unicode汉字'儿子,孩子,自己; (U + 5152)](http://www.fileformat.info/info/unicode/char/5152/index.htm),即只有一个UTF-16'char',所以你的假设是错误的。 – Andreas
好的,坏的措辞,它绝对是2个字符,我只是说我认为它是2个字符,因为它是unicode。这个脚本适用于我所做的音色,它只是失败了匹配。如果我进入调试器并在“if”中检查(...),它将返回为'false' – Mairyu