文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

Stringクラスのtrim( )メソッドの中身を考える

trim()メソッド


この処理の中身を考える。

しかし、説明から意味不明。。。

がんばって帰りの電車で考えてみます

============================================================

3/20追記
APIのリンク
java.lang: String.java

============================================================


3/23追記

3/20追記分のAPIを元に、trimの中身を見てみた。



何をやっているかというと、1つめのwhile文内で
trim後の最初のインデックスを設定している。

f:id:ron623:20150323174719p:plain


次に、2つめのwhile文内で
trim後の最後のインデックスを設定している。
f:id:ron623:20150323174958p:plain


上記より、開始インデックスと終了インデックスが決まった。
これらを引数としてsubStringメソッドを呼びだす。


SubStringの中身は以下のようになっている(例外処理は省略)。

・開始インデックスが0かつ終了インデックスが文字数と同じ(スペースがないとき)
⇒this(このString文字列の参照)をそのまま返す
・それ以外のとき
⇒この文字列の部分文字列を表す新しい String オブジェクトを返す

newでコンストラクタを呼び出しています。

// Package private constructor which shares value array for speed.
String(int offset, int count, char value[]) {
this.value = value;
this.offset = offset;
this.count = count;
}

こうしてtrimされた新しい文字列が生成されます。
f:id:ron623:20150323175832p:plain




上で出てきたようなif文の書き方好きじゃない。
素人には難解なのです。
いくら簡単な判別だとしても、パッと見て分かるものにしてほしい。