Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのStringクラスsubstring()メソッドの使い方を徹底解説

substring()メソッドは、元の文字列の開始インデックス(beginIndex)から終了インデックス(endIndex)までの部分に対応するString型の値を返します。終了インデックスが指定されていない場合は、文字列の末尾までが切り出しの対象となります。Javaの文字列は0番目の位置からインデックスが始まるという点に注意しましょう。

構文

public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)

beginIndex: 部分文字列の切り出しを開始する位置を示すインデックスです。

endIndex: 部分文字列の切り出しを終了する位置を示すインデックスです。

このメソッドは、切り出した部分文字列をString型として返します。endIndexが指定されない場合、終了インデックスは「文字列の長さ - 1」とみなされます。また、beginIndexが負の値の場合や、文字列の長さよりも大きい場合にはIndexOutOfBoundsExceptionがスローされるため、引数の範囲には十分注意してください。

使用例

public class StringSubstringTest{
    public static void main(String[] args) {
        String str = "Welcome to Tutorials Point";
        System.out.println(str.substring(5));
        System.out.println(str.substring(2, 5));
        str.substring(6);
        System.out.println("str value: "+ str);
        String str1 = str.substring(5);
        System.out.println("str1 value: "+ str1);
    }
}

実行結果

me to Tutorials Point
lco
str value: Welcome to Tutorials Point
str1 value: me to Tutorials Point

ポイント:Stringは不変(イミュータブル)

実行結果を見ると、str.substring(6)を呼び出しても「str」の値は変化していません。これはJavaのStringが不変(イミュータブル)オブジェクトであり、substring()メソッドは元の文字列を書き換えるのではなく、新しい文字列を生成して返すだけだからです。切り出した結果を利用したい場合は、上記の「str1」のように、戻り値を別の変数に代入する必要があります。

  1. Javaにおけるjava.lang.Classクラスの重要性とは?基本と使い方を解説

    java.lang.Classは、Javaにおいて最も重要なクラスの一つです。このクラスは、getClass()やforName()といったユーティリティメソッドを提供しており、これらを利用することでクラスの検索や動的なロードを行うことができます。さらに、Class.newInstance()メソッドも提供されており、これはリフレクション(Reflection)機能の中核を担う仕組みで、new演算子を使わずにクラスのインスタンスを生成することを可能にします。 java.lang.Classの重要性 Classクラスのインスタンスは、実行中のJavaアプリケーションにおけるクラス、インターフェ

  2. 【Java入門】SimpleDateFormatクラスでDate型を任意の形式の文字列に変換する方法

    JavaのSimpleDateFormatクラスは、Dateオブジェクトを指定したパターンの文字列(String)に変換したり、その逆に文字列からDateへ変換したりするために使用されるクラスです。日付の表示形式を自由にカスタマイズできるため、実務でも非常によく利用されます。SimpleDateFormatの基本的な使い方以下のサンプルコードでは、今日の日付を取得し、「yyyy-MM-dd-hh.mm.ss」というパターンで文字列に変換してコンソールに出力しています。サンプルコードimport java.util.Date; import java.text.SimpleDateFormat;