Java 文字列の長さを取得するサンプル(length)

Javaのlengthメソッドで、文字列の長さを取得するサンプルです。

目次

文字列 文字列の長さを取得する(length)
  サロゲートペアの文字列の長さを取得する(codePointCount)

文字列の長さを取得する(length)

public int length()

lengthメソッドで文字列の長さを取得するサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {
		
		// 文字列の長さを取得
		String str1 = "あいう+1";
		System.out.println(str1.length()); // 5

		// for文で文字の長さを取得
		String a = "abc";
		for (int i = 0; i < a.length(); i++) {
			System.out.println(a.charAt(i)); //a b c
			System.out.println(a.codePointAt(i));//97 98 99
		}
 	}
}

7行目は、全角文字と半角文字がありますが、それぞれ1文字としてカウントされています。
12行目は、文字列の長さを取得し、for文で文字数分ループさせています。
13行目のcharAtメソッドは、指定の位置にある文字を返します。
14行目のcodePointAtメソッドは、指定の位置にあるUnicodeコード・ポイントを返します。

サロゲートペアの文字列の長さを取得する(codePointCount)

public int codePointCount(int beginIndex, int endIndex)

codePointCountメソッドでサロゲートペアの文字列の長さを取得するサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {

		// 2文字だが、lengthメソッドでは4が返る
		String str1 = "????????";
		System.out.println(str1.length()); // 4
		
		// codePointCountメソッドを使用。2が返る
		System.out.println
			(str1.codePointCount(0, str1.length())); // 2
	}
}

7行目は、サロゲートペアの文字です。2文字ですがlengthでは4が返ってきます。
12行目のようにでcodePointCount文字数と同じ2が返ってきます。

関連の記事

UnicodeとUTF-16とUTF-8の違い(秀丸で文字コードを確認)
秀丸 文字コードを確認する方法
JavaScript 文字からUnicodeを取得(codePointAt)
JavaScript Unicodeから文字を取得(fromCodePoint)

△上に戻る