我想比較字符串部分(即字符)與中文字符。我假設由於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