Java の文字列の長さを調べる「length()」の使い方
新人
「Java で文字列の長さを調べる方法ってありますか?」
先輩
「あるよ!Java では length() メソッド を使えば、簡単に文字列の長さを調べることができるんだ。」
新人
「length() メソッドってどうやって使うんですか?」
先輩
「それじゃあ、基本的な使い方から説明していくね!」
1. length() メソッドとは?(基本的な説明)
Java の length() メソッド は、文字列の長さ(文字数)を取得するためのメソッドです。
length() メソッドの特徴
- 文字列の長さ(文字数)を取得できる
- 文字列の長さが動的に変わる場合にも対応可能
- 空の文字列("")なら 0 を返す
例えば、「Hello, World!」という文字列の長さを取得すると 13 になります。
2. length() メソッドの基本的な使い方
実際に length() メソッドを使って、文字列の長さを取得するプログラムを見てみましょう。
文字列の長さを取得する基本例
public class StringLengthExample {
public static void main(String[] args) {
String text = "Hello, World!";
int length = text.length();
System.out.println("文字列の長さ: " + length);
}
}
文字列の長さ: 13
コードの解説
String text = "Hello, World!";… 文字列を変数に保存int length = text.length();… 文字列の長さを取得System.out.println("文字列の長さ: " + length);… 結果を表示
このように、length() メソッドを使うと簡単に文字列の長さを調べることができます。
3. 変数を使った length() メソッドの活用
length() メソッドは、文字列の長さを取得するだけでなく、変数を使って柔軟に活用できます。
変数を利用した length() メソッドの例
public class StringLengthVariable {
public static void main(String[] args) {
String message = "こんにちは、Java!";
int length = message.length();
System.out.println("メッセージの長さ: " + length);
}
}
メッセージの長さ: 10
コードの解説
String message = "こんにちは、Java!";… 文字列を変数に保存int length = message.length();… 文字列の長さを取得System.out.println("メッセージの長さ: " + length);… 結果を表示
このように、変数を使うことで文字列の長さを動的に取得し、プログラムの処理に利用できます。
4. length() メソッドを使うときの注意点
length() メソッドを使う際には、いくつかの注意点があります。
改行やスペースも文字数に含まれる
length() メソッドは、改行やスペースもカウントするため、文字列の長さが予想と異なる場合があります。
スペースを含む文字列の例
public class StringLengthSpaces {
public static void main(String[] args) {
String text = " Java 学習 ";
int length = text.length();
System.out.println("文字列の長さ: " + length);
}
}
文字列の長さ: 9
コードの解説
- 前後にスペースが含まれているため、見た目より長い
- 不要なスペースを削除する場合は
trim()メソッドを活用
trim() を使って長さを調整
public class StringTrimExample {
public static void main(String[] args) {
String text = " Java 学習 ";
int lengthBefore = text.length();
int lengthAfter = text.trim().length();
System.out.println("変更前の長さ: " + lengthBefore);
System.out.println("trim() 使用後の長さ: " + lengthAfter);
}
}
変更前の長さ: 9
trim() 使用後の長さ: 6
このように、length() メソッドを使う際はスペースや改行に注意しましょう。
5. 空文字列や null の場合の length() の動作
length() メソッドを使用する際、空文字列("")や null の場合の挙動を理解しておくことが大切です。
空文字列の場合
空文字列("")は、length() を使うと 0 を返します。
public class EmptyStringLength {
public static void main(String[] args) {
String emptyText = "";
System.out.println("空文字列の長さ: " + emptyText.length());
}
}
空文字列の長さ: 0
null の場合
null の場合、length() メソッドを使うと NullPointerException が発生します。
public class NullStringLength {
public static void main(String[] args) {
String nullText = null;
System.out.println("null の長さ: " + nullText.length()); // ここでエラー
}
}
Exception in thread "main" java.lang.NullPointerException
null のチェック方法
null の場合、length() を実行するとエラーになるため、事前にチェックしましょう。
public class SafeStringLength {
public static void main(String[] args) {
String text = null;
if (text != null) {
System.out.println("文字列の長さ: " + text.length());
} else {
System.out.println("文字列は null です");
}
}
}
文字列は null です
このように、length() メソッドを使う前に null かどうかをチェックすると、エラーを防ぐことができます。
6. length() メソッドを使った応用例(ループ処理との組み合わせ)
length() メソッドは、文字列の長さを取得するだけでなく、ループ処理と組み合わせて活用できます。
文字列の各文字を 1 文字ずつ表示する例
public class StringLoopExample {
public static void main(String[] args) {
String text = "Java";
for (int i = 0; i < text.length(); i++) {
System.out.println("文字 " + (i + 1) + ": " + text.charAt(i));
}
}
}
文字 1: J
文字 2: a
文字 3: v
文字 4: a
コードの解説
text.length()を使ってループの回数を決めるcharAt(i)を使って i 番目の文字を取得- 文字の位置を 1 から始めるため
i + 1を表示
このように length() メソッドを使うと、文字列の長さを元にした繰り返し処理が可能になります。
7. 文字列の長さを比較する方法
length() メソッドを使えば、文字列の長さを比較して、どちらが長いかを判断できます。
2 つの文字列の長さを比較する例
public class StringLengthComparison {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "JavaScript";
if (str1.length() > str2.length()) {
System.out.println("str1 の方が長い");
} else if (str1.length() < str2.length()) {
System.out.println("str2 の方が長い");
} else {
System.out.println("両方の長さは同じ");
}
}
}
str2 の方が長い
コードの解説
- 2 つの文字列の長さを
length()で取得 - 長さが異なる場合はどちらが長いかを表示
- 長さが同じ場合は「両方の長さは同じ」と表示
この方法を使えば、文字列の長さを比較して条件分岐ができます。
8. 練習問題:length() メソッドを使ってプログラムを作ろう
最後に、length() メソッドを使った練習問題に挑戦してみましょう。
問題 1: ユーザーが入力した文字列の長さを表示する
import java.util.Scanner;
public class StringLengthUserInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("文字列を入力してください: ");
String input = scanner.nextLine();
System.out.println("入力した文字列の長さ: " + input.length());
scanner.close();
}
}
文字列を入力してください: Javaプログラミング
入力した文字列の長さ: 11
問題 2: 文字数が 10 文字以上なら「長い」、10 文字未満なら「短い」と判定
import java.util.Scanner;
public class StringLengthCheck {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("文字列を入力してください: ");
String input = scanner.nextLine();
if (input.length() >= 10) {
System.out.println("長い文字列です");
} else {
System.out.println("短い文字列です");
}
scanner.close();
}
}
文字列を入力してください: プログラミング
長い文字列です
問題 3: 文字列の長さが偶数か奇数かを判定する
import java.util.Scanner;
public class StringLengthEvenOdd {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("文字列を入力してください: ");
String input = scanner.nextLine();
if (input.length() % 2 == 0) {
System.out.println("文字列の長さは偶数です");
} else {
System.out.println("文字列の長さは奇数です");
}
scanner.close();
}
}
文字列を入力してください: Hello
文字列の長さは奇数です
このように、length() メソッドを活用すれば、さまざまなプログラムを作成できます。