人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

翔泳社SUN教科書JavaプログラマSJC?Pの問題9?10より。(main関数等は省略)
以下の2問は最終的に「xyz」を出力するようなのですが、自分でやるとどうも答え通りにいきません。それぞれの関数後の途中結果を含めて解説をお願いします。
<1問目>
StringBuffer s = new StringBuffer("xxxzzzyyy");
s = s.delete(1,3).replace(1,3,"y").delete(3,6);
System.out.println(s);
<2問目>
StringBuffer s = new StringBuffer("xxxzzzyyy");
s.replace(1,3,"y").delete(2,8).append("z");
System.out.println(s);

●質問者: keronimo
●カテゴリ:コンピュータ
✍キーワード:DELETE Out XYZ プログラマ 教科書
○ 状態 :終了
└ 回答数 : 1/2件

▽最新の回答へ

1 ● POPO
●60ポイント

ポイントは文字列操作のindexは0から始まる。(一番先頭文字が0,index1は2文字目)

操作する最後の文字は指定されたindex-1

replace(1,3だったら実際に操作されるのは1オリジンで数えた場合は2文字目,3文字目

以下は0オリジンで記載します

1問目

xxxzzzyyyの1文字目,2文字目を削除→xzzzyyy

xzzzyyyの1文字目,2文字目をy1文字に置換→xyzyyy

xyzyyyの3文字目?5文字目を削除→xyz

2問目

xxxzzzyyyの1文字目,2文字目をy1文字に置換→xyzzzyyy

xyzzzyyyの2?7文字目を削除→xy

xyにzを追加→xyz

◎質問者からの返答

replaceの対象となっている文字をすべて変換していたのが原因でした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ