OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:623
区分:プログラム  |  分類:Java  |  最終更新日:2016/03/30
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【Java】文字列の一部を取り出す
関連タグ:Java, String, substring
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 60,784
Java関連技術まとめ > 【Java】文字列の一部を取り出す

Java で文字列の一部を取り出すには、String.substring メソッドを使用します。

 

メソッド戻り値説明

substring(int[, int])

String

第一引数で指定した開始位置から第二引数で指定した終了位置までの文字列を切り出します。

※終了位置は省略でき、省略した場合は文字列の最後までを切り出します。

 

substring メソッドは元の文字列に対して切り出し開始位置と終了位置を指定することで文字列の切り出しを行います。第一引数に切り出し開始位置を、第二引数に切り出し終了位置をインデックス番号で指定します。インデックス番号は 0 から始まり、半角・全角関係なく一文字は一文字として計算します。切り出された文字列は新しい文字列インスタンスとして返ります。なお、切り出し開始位置または終了位置が元の文字列よりも大きい場合、あるいは負の値の場合、または終了位置が開始位置よりも前の場合などは StringIndexOutOfBoundsException の例外が発生します。

 

String str1 = new String("Hello World");
String str2 = str1.substring(2, 5);

上記例では元の文字列「Hello World」に対してインデックス番号2~5番目前までを切り出しているので、str2に代入される値は「llo」になります。

 

インデックス番号012345678910
文字列 H e l l o   W o r l d

いろいろな切り出し方

先頭から指定文字数分切り出す

先頭から指定文字数分切り出す場合は、切り出し開始位置を 0 とし、終了位置に任意の文字数を設定します。

 

【サンプルコード1】

class Sample1 {
    public static void main(String[] args) {

        try {
            //元データの設定
            String str1 = new String("Hello World");

            //切り出した文字列を表示
            System.out.println(str1.substring(0, 5));

        } catch(NullPointerException e) {
            System.out.println("NullPointerExceptionが発生しました。");
        } catch(Throwable e) {
            System.out.println("予期しない例外が発生しました。");
        }
    }
}

※ 上記例は「Hello」と表示されます。

末尾から指定文字数分切り出す

末尾から指定文字数分切り出す場合は、切り出し開始位置に文字列の長さから任意の文字数を引いた値を設定し、終了位置を省略します。

 

【サンプルコード2】

class Sample2 {
    public static void main(String[] args) {

        try {
            //元データの設定
            String str1 = new String("Hello World");

            //切り出した文字列を表示
            System.out.println(str1.substring(str1.length()-5));

        } catch(NullPointerException e) {
            System.out.println("NullPointerExceptionが発生しました。");
        } catch(Throwable e) {
            System.out.println("予期しない例外が発生しました。");
        }
    }
}

※ 上記例は「World」と表示されます。

指定文字から前を切り出す

指定文字から前の文字列を切り出す場合は、切り出し開始位置を 0 とし、終了位置に指定文字の位置を設定します。

 

【サンプルコード3】

class Sample3 {
    public static void main(String[] args) {

        try {
            //元データの設定
            String str1 = new String("名前:サンプル太郎");

            //切り出した文字列を表示
            System.out.println(str1.substring(0, str1.indexOf(":")));

        } catch(NullPointerException e) {
            System.out.println("NullPointerExceptionが発生しました。");
        } catch(Throwable e) {
            System.out.println("予期しない例外が発生しました。");
        }
    }
}

※ 上記例は「名前」と表示されます。

指定文字から後ろを切り出す

指定文字から後ろの文字列を切り出す場合は、切り出し開始位置に指定文字の位置 +1 した値を設定し、終了位置を省略します。

 

【サンプルコード4】

class Sample4 {
    public static void main(String[] args) {

        try {
            //元データの設定
            String str1 = new String("名前:サンプル太郎");

            //切り出した文字列を表示
            System.out.println(str1.substring(str1.indexOf(":")+1));

        } catch(NullPointerException e) {
            System.out.println("NullPointerExceptionが発生しました。");
        } catch(Throwable e) {
            System.out.println("予期しない例外が発生しました。");
        }
    }
}

※ 上記例は「サンプル太郎」と表示されます。

 

関連記事
関連記事はありません。
外部リンク
外部リンクはありません。
- 記事検索 -