Java - 文字列: 初心者のガイド

こんにちは、未来のJavaの魔法使いたち!? 今日、私たちはJavaの文字列の世界に興味深い旅に出かけます。まだ一度もコードを書いたことがなくても心配しないでください。私たちは最初から始めて、少しずつ上達していきます。このチュートリアルの最後まで来たら、あなたもプロのようにJavaのコードを組み合わせることができるようになるでしょう!それでは、始めましょう!

Java - Strings

文字列とは?

コーディングを始める前に、文字列とは何か理解しましょう。Javaでは、文字列はシンプルに文字のシーケンスです。それをネックレスに例えて、各ビーズが文字を表していると考えてください。これらの文字は、アルファベット、数字、記号、そしてスペースも含まれます。

文字列の作成

まず、いくつかの文字列を作成してみましょう。Javaでは、これを行う方法がいくつかあります:

String greeting = "こんにちは、世界!";
String name = new String("アリス");

最初の行では、greetingという名前の文字列を作成し、その値に"こんにちは、世界!"を設定しています。これは文字列を作成する最も一般的な方法です。

2行目では、newキーワードを使用して文字列オブジェクトを作成しています。この方法は少し特殊で、特定の状況で便利です。

文字列の長さ

いくつかの文字列をお持ちできたので、それらの長さを見てみましょう。Javaは便利なメソッドを提供しています:

String message = "Javaは楽しい!";
int length = message.length();
System.out.println("メッセージは" + length + "文字です。");

このコードを実行すると、以下のように出力されます:

メッセージは13文字です。

length()メソッドは、スペースを含むすべての文字を文字列内で数えます!

文字列の結合

結合とは、文字列をお互いに結び合わせるという意味の単語です。Javaでは、+演算子を使用してこれを行うことができます:

String firstName = "ジョン";
String lastName = "ドーエ";
String fullName = firstName + " " + lastName;
System.out.println(fullName);

これは以下のように出力されます:

ジョン ドーエ

名前の間にスペース " "を追加していることに注意してください。それがなければ、"ジョンドーエ"となってしまいます!

フォーマット文字列の作成

時々、特定のフォーマットで文字列を作成したい場合があります。JavaはString.format()メソッドを提供しています:

String name = "アリス";
int age = 30;
String formatted = String.format("私の名前は%sで、%d歳です。", name, age);
System.out.println(formatted);

これは以下のように出力されます:

私の名前はアリスで、30歳です。

この例では、%sは文字列のプレースホルダーで、%dは整数のプレースホルダーです。

JavaのStringクラスメソッド

JavaのStringクラスには、たくさんの便利なメソッドがあります。そのいくつかを見ていきましょう:

メソッド 説明
charAt(int index) 指定されたインデックスの文字を返します "こんにちは".charAt(1)は 'に' を返します
substring(int beginIndex, int endIndex) 文字列の一部を返します "こんにちは".substring(1, 4)は "にち" を返します
toLowerCase() すべての文字を小文字に変換します "こんにちは".toLowerCase()は "こんにちは" を返します
toUpperCase() すべての文字を大文字に変換します "こんにちは".toUpperCase()は "こんにちは" を返します
trim() 文字列の両端から空白を削除します " こんにちは ".trim()は "こんにちは" を返します
replace(char oldChar, char newChar) 文字のすべての出現を置き換えます "こんにちは".replace('は', 'わ')は "こんにちは" を返します
startsWith(String prefix) 文字列が指定された接頭辞で始まるかどうかを確認します "こんにちは".startsWith("こ")は true を返します
endsWith(String suffix) 文字列が指定された接尾辞で終わるかどうかを確認します "こんにちは".endsWith("にち")は true を返します

以下のようにいくつかのメソッドを動作させてみましょう:

String str = "  Java Programming  ";
System.out.println(str.trim().toLowerCase());
System.out.println(str.replace('a', 'o'));
System.out.println(str.substring(2, 6));

これは以下のように出力されます:

java programming
Jovo Progromming
Java

実際の例

これらすべてを、面白い小さなプログラムとして組み合わせてみましょう。ゲーム用のシンプルなユーザー名生成器を作成していると想象してください:

public class UsernameGenerator {
public static void main(String[] args) {
String firstName = "マリオ";
String lastName = "ブロス";
int favoriteNumber = 64;

// ユーザー名を生成
String username = firstName.substring(0, 3).toLowerCase() +
lastName.toUpperCase() +
String.format("%02d", favoriteNumber);

System.out.println("ようこそ、" + firstName + "さん!あなたのユーザー名は:" + username);
}
}

このプログラムを実行すると、以下のように出力されます:

ようこそ、マリオさん!あなたのユーザー名は:マリブロス64

以下が起こっていることです:

  1. 名前の最初の3文字を小文字にして取り出します。
  2. 姓を大文字にします。
  3. お気に入りの数字を常に2桁にフォーマットします(必要に応じて先頭に0を追加します)。
  4. これらの部分をすべて結合します。

そして、ユニークなユーザー名が得られます。

結論

おめでとうございます!あなたはJavaの文字列の世界に踏み込んだ第一歩を歩みました。文字列の作成、長さの取得、結合、フォーマット、そして一般的な文字列メソッドのいくつかについて説明しました。

覚えておいてください、練習は成功のもとです。これらの概念を試してみて、自分の例を作成し、間違いを恐れずに試してみてください。それが学びの道です!

次のレッスンでは、Javaの制御文について詳しく説明し、プログラムをよりダイナミックにする方法を学びます。それまでに、文字列と楽しんでください!

Credits: Image by storyset