2

Unicode 文字を含む txt ファイルを読み込んでいます。このファイルに特定の Unicode 文字が存在するかどうかを調べる必要があります。これまでのコードは次のとおりです。

    try {
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(getAssets().open("DistinctWords.txt"), "UTF-8"));

         int i = 0;
        String mLine = reader.readLine();
        while ((mLine != null)) {
           //process line
//unicode value taken from http://codepoints.net/U+0D85
            if (mLine.contains("\u0D85")){
                i++;
            }
           mLine = reader.readLine(); 

        }

        reader.close();
        Log.i("tula", "Ayanna - " + String.valueOf(i));
    } catch (IOException e) {
        //log the exception
    }

問題: 「i」の値が常に「0」です。メモ帳から同じテキスト ファイルを開くと、文字が表示されますが、コードが見つかりません。

4

1 に答える 1

2

TronicZomB が言うように、次のような実際のキャラクターを探す必要があると思います。

while ((mLine != null)) {
   //process line
    if (mLine.contains("අ")){
        i++;
    }
   mLine = reader.readLine(); 
}

適切なエンコーディングを処理できるエディターを使用する必要があります。

  • Windows のメモ帳では、ファイルに UTF-8 エンコーディングを指定できますが、ファイルのエンコーディングを ANSI の UTF-8 に設定する必要があります。
  • Mac OS-x では TextEdit を使用できます。環境設定の [開くと保存] タブで、ドキュメントのエンコードを設定できます。
  • Linux では StarOffice が動作すると思われますが、私は使用していません。
于 2013-08-14T01:57:29.123 に答える