JavaのStringクラス - substringとstartsWithメソッドの違いを徹底解説!初心者でもわかる文字列操作
生徒
「Javaで、文字列を一部取り出したり、特定の文字列で始まるかを確認する方法ってありますか?」
先生
「良い質問ですね!JavaのStringクラスには、substringメソッドとstartsWithメソッドがあります。これらを使うことで、文字列の一部分を取り出したり、特定の文字列で始まっているかをチェックすることができますよ。」
生徒
「具体的にはどのように使い分けるんですか?」
先生
「では、これらのメソッドの使い方と違いを見ていきましょう!」
1. substringメソッドとは?
Javaのsubstringメソッドは、文字列の「一部分だけを取り出したい」ときに使うメソッドです。例えば、あいさつ文や日付の文字列から、必要なところだけを抜き出して表示したいときにとても便利です。
まずは、シンプルな例から見てみましょう。「Hello, World!」という文字列から、先頭の「Hello」だけを取り出してみます。
public class SubstringExample {
public static void main(String[] args) {
String text = "Hello, Java World!";
// 文字列の一部を取り出す(0文字目から4文字目まで)
String subText = text.substring(0, 5);
System.out.println("取り出した文字列: " + subText);
}
}
このコードを実行すると、次のような結果が得られます。
取り出した文字列: Hello
substring(開始位置, 終了位置)のように指定すると、「開始位置から、終了位置の1つ手前まで」が取り出されます。ここでは0文字目から5文字目の手前まで、つまり「Hello」の部分だけが取り出されています。文字の数え方は「0から始まる」という点も、Javaの文字列操作ではとても大事なポイントです。
もう少し現実的な例として、日付の文字列から「年」の部分だけを取り出すこともできます。
public class DateSubstringExample {
public static void main(String[] args) {
String date = "2024-11-15";
// 先頭4文字だけを取り出して「年」として利用
String year = date.substring(0, 4);
System.out.println("年だけ取り出した結果: " + year);
}
}
このプログラムでは、「2024-11-15」という文字列からsubstring(0, 4)を使って「2024」という部分だけを取り出しています。このように、substringメソッドを使うと、長い文字列の中から必要な情報だけを切り出して扱うことができます。Javaで文字列処理をするうえで、最初に覚えておきたい基本的なメソッドのひとつです。
2. startsWithメソッドとは?
一方、startsWithメソッドは、文字列が指定した文字列で始まるかどうかを確認するためのメソッドです。例えば、URLが「https」で始まるかどうかを調べるのに便利です。
public class StartsWithExample {
public static void main(String[] args) {
String url = "https://www.example.com";
// "https"で始まるかを確認
boolean isSecure = url.startsWith("https");
System.out.println("URLはhttpsで始まる: " + isSecure);
}
}
出力は以下のようになります。
URLはhttpsで始まる: true
このように、startsWithメソッドは特定の文字列で始まっているかどうかを調べることができます。
3. substringとstartsWithの違いと使い分け
ここまで、substringとstartsWithの基本的な使い方を説明しましたが、これらのメソッドには明確な違いがあります。それぞれの用途を理解して、適切に使い分けましょう。
substring:文字列の一部を取り出すために使います。例えば、データの一部だけを切り出して表示したい場合に便利です。startsWith:文字列が特定の文字列で始まるかどうかを確認します。データのフィルタリングやURLのチェックなどに役立ちます。
以下の例では、substringとstartsWithを組み合わせて使っています。
public class CombinedExample {
public static void main(String[] args) {
String message = "Welcome to Java Programming!";
// "Welcome"で始まるか確認し、一部を取り出す
if (message.startsWith("Welcome")) {
String extracted = message.substring(11, 15);
System.out.println("抽出した文字列: " + extracted);
}
}
}
上記のプログラムを実行すると、次のように表示されます。
抽出した文字列: Java
このように、startsWithで文字列の条件をチェックし、substringで必要な部分を抽出するという使い方もできます。柔軟に組み合わせて使ってみましょう!
4. substringとstartsWithの便利な使い方をマスターしよう
substringとstartsWithメソッドは、どちらも文字列操作において非常に便利なツールです。目的に応じてこれらのメソッドを適切に使い分けることで、効率的なコードを書くことができます。
データの抽出や文字列の判定を行いたいときは、ぜひこの2つのメソッドを活用してみてください。初心者でも理解しやすいシンプルなメソッドなので、しっかりと使い方を覚えておくと良いでしょう。
まとめ
この記事では、Javaの文字列処理に欠かせないsubstringとstartsWithメソッドの違いと特徴をていねいにふりかえりながら学んできました。ふだんのプログラム開発では、文字列の一部を取り出したり、特定の語句ではじまっているかどうかを判定したりする場面がとても多く、この二つのメソッドを正しく理解しているかどうかでコードの読みやすさや処理の正確さがぐっと変わってきます。とくにsubstringは文字列を柔軟に切り出せるため、データ処理や入力値の加工など多くの場面で活躍します。一方でstartsWithは条件分岐や判定処理にとても便利で、特定の形式をもつ文字列かどうかを判断する場面で非常に重宝します。たとえばURL判定、検索キーワードの絞り込み、ログ解析、設定ファイルの判定など、さまざまな状況でstartsWithは役に立ちます。 また、substringとstartsWithは目的がちがうので、使い分けをしっかり意識することが重要です。substringは部分抽出、startsWithは先頭判定という役割のちがいを理解し、状況に応じて組み合わせることで、より表現力の高いコードを書くことができます。実務では、入力値チェックの前処理としてstartsWithを使い、その後substringで必要な情報だけを切り出すという流れが自然に登場します。さらに、データフォーマットの整形やログ解析ツールの作成など、さまざまな用途でこれらのメソッドが活用されます。文字列操作は基本的なテーマですが、その応用範囲は広いので、初学者のうちにしっかり理解しておくとあとで大きな武器になります。 実際に自分でコードを書きながら挙動を確認することで、引数として指定する開始位置、終了位置、判定対象の語句がどのように結果へ影響するのかも自然に理解できるようになります。文字列操作は抽象的に感じやすい部分ですが、具体例を通して手を動かすほど理解が深まり、自信をもって扱えるようになります。これまでのサンプルコードを参考に、自分の開発環境で動かしながら試すことで、Javaの文字列処理にまつわる理解がより確実なものになるでしょう。
substringとstartsWithの動きを確認するサンプル
public class SummarySample {
public static void main(String[] args) {
String title = "JavaProgrammingBasics";
// 先頭が"Java"ではじまるか確認
if (title.startsWith("Java")) {
System.out.println("先頭がJavaではじまります");
}
// 文字列の一部を抽出
String part = title.substring(4, 15);
System.out.println("抽出した文字列: " + part);
// 組み合わせて利用
if (title.startsWith("Java")) {
String extracted = title.substring(4);
System.out.println("組み合わせ抽出: " + extracted);
}
}
}
生徒
「先生、今回の学習でsubstringとstartsWithのちがいがかなりわかりやすくなりました。用途がしっかり分かれているんですね。」
先生
「そのとおりです。文字列処理はJavaの中でもとてもよく使う分野なので、きちんと理解しておくといろいろな場面で役に立ちますよ。」
生徒
「たしかに、入力チェックやメッセージの加工など、思ったより使いどころが多いですね。組み合わせて使うのも便利だと感じました。」
先生
「良い気づきですね。条件判定と部分抽出をスムーズに扱えるようになると、自然とコードの質も上がっていきます。今後はreplaceやsplitなどの文字列メソッドも一緒に学ぶとさらに理解が深まりますよ。」
生徒
「はい、今回学んだsubstringとstartsWithをしっかり練習して、もっと文字列処理に慣れていきたいです!」
先生
「素晴らしいですね。これからも実際に手を動かしながら学んでいきましょう。」