文字列の文字数を取得するにには、.length() または .codePointCount() を使用します。
両方とも全角半角文字混在していても問題ありません。
違いは、.lengthではサロゲートペア文字が含まれている場合は正しくカウントできないという事です。 判定する文字列にサロゲート文字が含まれる可能性がある場合は、.codePointCount を使用してください。
サンプルソース
例)文字数を取得する(.length)
1 2 3 4 5 6 7 |
String a = "あいうえお"; String b = "abc"; String c = "あいうえおabc"; System.out.println(a.length()); System.out.println(b.length()); System.out.println(c.length()); |
- 結果例
- 5 3 8
文字数を取得する(.codePointCount)
1 2 3 4 |
String a = "?る"; //サロゲート文字です。 System.out.println(a.length()); System.out.println(a.codePointCount(0, a.length())); |
- 結果例
- 3 2
備考
- サロゲートペア文字とは、簡単にいうとUnicodeで1文字で4バイト割り当てられている文字のことです。(通常は1文字で2バイト)