文字列の一部を取得(substring)

広告

元の文字列から一部分を取り出して新しい文字列を作成します。

この文字列の部分文字列である新しい文字列を返します。部分文字列は、指定された beginIndex か
ら始まり、インデックス endIndex - 1 にある文字までです。したがって、部分文字列の長さは 
endIndex-beginIndex になります。 

パラメータ:
  beginIndex - 開始インデックス (この値を含む)
  endIndex - 終了インデックス (この値を含まない) 
戻り値:
  指定された部分文字列 
例外: 
  IndexOutOfBoundsException - beginIndex が負の値である場合、endIndexがこの String オブジェ
    クトの長さより大きい場合、あるいはbeginIndex が endIndex より大きい場合

元々の文字列から一部分を抜き出して取得します。抜き出す部分の指定はインデックス番号で指定します。ここで言うインデックスとは下記のようなものです。

"Hello!"という文字列があった場合

インデックス 0 -->  H
インデックス 1 -->  e
インデックス 2 -->  l
インデックス 3 -->  l
インデックス 4 -->  o
インデックス 5 -->  !

よってこの"Hello!"という文字列から"llo"の部分を抜き出すには、「"Hello!".substring(2, 5)」ということになります。(終了インデックスに指定した値は含まれないことに注意して下さい)。

インデックスは半角文字であっても全角文字であっても1文字に対して1つずつ増加します。よって全角文字の場合でも下記のようになります。

"こんにちは"という文字列があった場合

インデックス 0 -->  こ
インデックス 1 -->  ん
インデックス 2 -->  に
インデックス 3 -->  ち
インデックス 4 -->  は

サンプルプログラム

では実際に試してみましょう。

testString2.java

class testString2{
  public static void main(String args[]){
    String str1 = new String("Hello World!");
    String new_str1 = str1.substring(2, 5);

    System.out.println(str1 + "のsubstring(2,5)は" + new_str1 + "です");

    String str2 = new String("こんにちは");
    String new_str2 = str2.substring(2, 4);

    System.out.println(str2 + "のsubstring(2,4)は" + new_str2 + "です");
  }
}

上記を実際にコンパイルして実行してみると下記のようになります。

p2

( Written by Tatsuo Ikura )