こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 Javaで指定した位置から文字列を抜き出すことができるString.substringメソッドについて
- String.substringメソッドとは
- String.substringメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
| OS | Windows10 | 
|---|---|
| IntelliJ IDEAのエディション | Community(無料版) | 
| IntelliJ IDEAのバージョン | 2021.3.2 | 
| プロジェクト | Javaプロジェクト | 
| SDK | Oracle OpenJDK version17.0.2 | 
Javaを動かすためにIntelliJ IDEAを使っています。
IntelliJ IDEAのインストールは、下の記事をご参考ください。
String.substringメソッドとは
String.substringメソッドとは、文字列から引数で指定されている開始インデックスから文字列を抜き出して返すメソッドです。
String.substringメソッドは使い方が
- パターン1:開始インデックスのみ指定
- パターン2:開始と終了のインデックスを指定
の合計2パターンあります。
それぞれ解説します。
パターン1:開始インデックスのみ指定
開始インデックスのみ指定してString.substringメソッドを使った場合、開始インデックスから最後までの文字列を返します。
使い方サンプルは以下です。
| 1 2 | String sample = "sample"; String result = sample.substring(2); | 
上記の例だと、変数resultには文字列「sample」の開始インデックスが2番目以降の
| 1 | mple | 

が返されます。
注意点としてもし指定するインデックスが負の値または文字列の長さより大きい場合、コンパイルは通るものの実行すると
| 1 | Exception in thread "main" java.lang.StringIndexOutOfBoundsException | 
という例外が発生します。
パターン2:開始と終了のインデックスを指定
第一引数を開始、第二引数を終了のインデックスとして指定してString.substringメソッドを使った場合、開始インデックスから終了インデックスの前までの文字列を返します。
取得できる文字列の長さは終了インデックスから開始インデックスを引いた値になります。
使い方サンプルは以下です。
| 1 2 | String sample = "sample"; String result = sample.substring(2, 4); | 
上記の例だと、変数resultには文字列「sample」の開始インデックスが2番目で、終了インデックスの4番目の前までの
| 1 | mp | 

が返されます。
注意点として
- 開始インデックスが負の値
- 終了インデックスが文字列より大きい
- 終了インデックスより開始インデックスの方が値が大きい
のいずれかの場合、パターン1と同様にコンパイルは通るものの実行すると
| 1 | Exception in thread "main" java.lang.StringIndexOutOfBoundsException | 
という例外が発生します。
では、次の章で実際に使ってみます。
String.substringメソッドを解説するプログラムの概要
String.substringメソッドを解説するプログラムでは、同じ文字列に対して
- 開始インデックスのみ指定
- 開始と終了のインデックスを指定
でそれぞれString.substringメソッドを使って、結果を表示させます。
解説で使うJavaプログラムは、Sampleプロジェクトのsampleパッケージ内にある、とします。

Javaサンプルプログラム
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package sample; public class Sample {     public static void main(String[] args) {         String greet = "おはようございます";         System.out.println("使う文字列:" + greet);         System.out.println("■パターン1:開始インデックスのみ指定");         String str1 = greet.substring(3);         System.out.println("開始インデックスが3番目以降を抜き出す:" + str1);         System.out.println("■パターン2:開始と終了のインデックスを指定");         String str2 = greet.substring(3, 6);         System.out.println("開始が3番目で終了が6番目の前までを抜き出す:" + str2);     } } | 
実行結果
Javaプログラムを実行します。
実行のやり方は
- プログラムを右クリックして実行
- 実行タブから実行
- ガターから実行
の3種類あるので、いずれかで実行します。
詳しい解説は以下の記事をご参考ください。

| 1 2 3 4 5 | 使う文字列:おはようございます ■パターン1:開始インデックスのみ指定 開始インデックスが3番目以降を抜き出す:うございます ■パターン2:開始と終了のインデックスを指定 開始が3番目で終了が6番目の前までを抜き出す:うござ | 
- 開始インデックスのみ指定
- 開始と終了のインデックスを指定
のそれぞれで指定したインデックスで文字列が抜き出せていることが確認できました。
まとめ:String.substringメソッドを使ってみよう!
以上がJavaのString.substringメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
 
  
  
  
  
コメント