Javaの文字列操作|Stringクラスの便利メソッドまとめ

先生

JavaのStringクラスを使いこなして、文字列操作を自由自在に!StringBuilderとの使い分けも解説します。

Java Stringクラスとは?文字列操作の基本

JavaにおけるStringクラスは、文字列を扱うための基本的なクラスです。文字列は、文字の並びを意味し、テキストデータを表現するために広く使用されます。Stringクラスは不変(immutable)であり、一度作成された文字列の内容は変更できません。文字列に対する操作を行うと、新しいStringオブジェクトが生成されます。

Javaで文字列リテラルを定義するには、ダブルクォーテーション(")を使用します。例えば、"Hello, world!"は文字列リテラルです。

String message = "Hello, world!";
System.out.println(message); // 出力: Hello, world!

Stringクラスの主要メソッドと使い方

Stringクラスには、文字列操作に役立つ豊富なメソッドが用意されています。ここでは、特に使用頻度の高いメソッドをいくつか紹介します。

length()メソッドは、文字列の文字数を返します。

String text = "Java String";
int length = text.length();
System.out.println(length); // 出力: 12

charAt(int index)メソッドは、指定されたインデックス位置にある文字を返します。インデックスは0から始まります。

String text = "Java";
char character = text.charAt(0);
System.out.println(character); // 出力: J

substring(int beginIndex, int endIndex)メソッドは、指定された開始インデックスから終了インデックスまでの部分文字列を返します。終了インデックスの文字は含まれません。

String text = "Programming";
String sub = text.substring(0, 4);
System.out.println(sub); // 出力: Prog

concat(String str)メソッドは、現在の文字列に別の文字列を連結します。

String str1 = "Hello";
String str2 = " World";
String result = str1.concat(str2);
System.out.println(result); // 出力: Hello World

indexOf(String str)メソッドは、指定された文字列が最初に出現するインデックスを返します。見つからない場合は-1を返します。

String text = "This is a pen.";
int index = text.indexOf("pen");
System.out.println(index); // 出力: 10

replace(CharSequence target, CharSequence replacement)メソッドは、文字列中の指定された文字列を別の文字列に置換します。

String text = "Hello Java";
String replaced = text.replace("Java", "World");
System.out.println(replaced); // 出力: Hello World

toLowerCase()メソッドは文字列をすべて小文字に変換し、toUpperCase()メソッドは文字列をすべて大文字に変換します。

String text = "Java String";
String lower = text.toLowerCase();
String upper = text.toUpperCase();
System.out.println(lower); // 出力: java string
System.out.println(upper); // 出力: JAVA STRING

trim()メソッドは、文字列の先頭と末尾にある空白文字を削除します。

String text = "  Java String  ";
String trimmed = text.trim();
System.out.println(trimmed); // 出力: Java String

split(String regex)メソッドは、指定された正規表現に基づいて文字列を分割し、文字列の配列を返します。

String text = "apple,banana,orange";
String[] fruits = text.split(",");
for (String fruit : fruits) {
    System.out.println(fruit);
} // 出力: apple, banana, orange

equals(Object obj)メソッドは、大文字と小文字を区別して文字列を比較し、equalsIgnoreCase(String anotherString)メソッドは大文字と小文字を区別せずに文字列を比較します。

String str1 = "Java";
String str2 = "java";
System.out.println(str1.equals(str2)); // 出力: false
System.out.println(str1.equalsIgnoreCase(str2)); // 出力: true

StringBuilderクラス:可変文字列の操作

Stringクラスが不変であるのに対し、StringBuilderクラスは可変の文字列を扱うためのクラスです。文字列の頻繁な変更が必要な場合に、Stringクラスを使用すると、毎回新しいオブジェクトが生成されるため、パフォーマンスが低下する可能性があります。このような場合には、StringBuilderクラスを使用することで、効率的な文字列操作が可能になります。

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString()); // 出力: Hello World

参考リンク

まとめ

JavaのStringクラスは、文字列操作の基本であり、さまざまな便利なメソッドが提供されています。文字列の長さを取得したり、部分文字列を抽出したり、文字列を連結したり、文字列を置換したりするなど、さまざまな操作が可能です。また、文字列の頻繁な変更が必要な場合には、StringBuilderクラスを使用することで、効率的な文字列操作ができます。これらのクラスとメソッドを理解し、適切に使いこなすことで、Javaでの文字列操作をより効果的に行うことができます。