h3pei.tech
お仕事のご依頼
2013-03-24

java.lang.String#charAt()

概要

指定されたインデックス位置にある char 値を返す。

定義

インターフェース「CharSequence」内の charAt

パラメータ

index - char 値のインデックス

戻り値

文字列内の指定されたインデックス位置にある char 値

ソースコード

public char charAt(int index) {
     // (1)
     if ((index < 0) || (index >= count)) {
          // (2)
          throw new StringIndexOutOfBoundsException(index);
     }
     // (3)
     return value[index + offset];
}

解説メモ (※ java の学習としてソースコードを読んでいるため、ここに書かれている解釈は間違っている箇所が多々あると思われます。)

  • (1) パラメータのインデックスが、0以上かつレシーバの文字列オブジェクトの文字数を超えていないことをチェックする。超えていた場合、StringIndexOutOfBoundsException 例外がスローされる。
  • (2) if 文で true が返された場合、StringIndexOutOfBoundsException がスローされる。 この例外クラスは、IndexOutOfBoundsException クラスのサブクラスにあたる。 String メソッドによりスローされ、インデックスが負または文字列のサイズよりも大きいことを示す。 charAt()メソッドではインデックスの指定範囲は「0 〜 length() -1」であるため、文字列と同じサイズのインデックス値が投げられた場合にもこの例外がスローされる。
  • (3) value は String クラスのインスタンスフィールド。 96行目に「private final char value[]」という記述が見つかる。 これは、例えば String s = “hoge”; のように宣言された変数があった場合に、 Char[]value = {“h”, “o”, “g”, “e”} のように文字を格納する char 型の配列である。よって、この配列に指定された添字をつけて、return して終了。 ※offset の役割がまだよくわかっていない。
h3pei's icon

h3pei

フリーランスのソフトウェアエンジニア。Ruby / Rails アプリケーションの開発が得意領域。設計・実装・運用まで含めてプロダクト開発が好きです。

Questalという目標達成コミュニティサービスを開発しました。仲間と一緒に目標達成に取り組みたい方はぜひご利用ください。

お仕事のご依頼
GitHubnoteX

関連記事