半角文字は1バイト、全角の日本語はマルチバイト文字なのは常識。では、文字列の長さを調べると、半角と全角でどう変わる?

問題 - 文字列の長さ「難易度:低」

次のようなJavaプログラムがあります。変数str1には半角英語の「ABCDE」、str2には全角ひらがなの「あいうえお」がセットされています。

String str1 = "ABCDE";
String str2 = "あいうえお";

String型の文字列はlengthメソッドで文字列の長さを求めることができます。 さて、次の2つの出力結果はどうなるでしょうか?

【1】 System.out.println(str1.length());
【2】 System.out.println(str2.length());

半角文字は1バイト、全角の日本語はマルチバイト文字なのは常識。では、文字列の長さを調べると、半角と全角でどう変わる?

問題 - 文字列の長さ「難易度:低」

次のようなJavaプログラムがあります。変数str1には半角英語の「ABCDE」、str2には全角ひらがなの「あいうえお」がセットされています。

String str1 = "ABCDE";
String str2 = "あいうえお";

String型の文字列はlengthメソッドで文字列の長さを求めることができます。 さて、次の2つの出力結果はどうなるでしょうか?

【1】 System.out.println(str1.length());
【2】 System.out.println(str2.length());

解答

【1】【2】ともに出力結果は「5」。

解説

Javaでは文字列をUnicodeで処理しているため、半角の英語も全角の日本語も同じ文字列として扱うことができます。そのため、Stringクラスのlengthメソッドは全角半角に関係なく、文字列の長さを取り出すことができます。同じように文字列の一部を取り出すStringクラスのsubstringメソッドも全角半角に関係なく使用することができます。

それでは、また来週!