質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

1434閲覧

StringBuilderクラスの表示

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/05/27 23:41

class Kad{ public static void main (String[] args){ StringBuilder data = new StringBuilder("AAAA BB 7"); System.out.println(data); data.delete(5,8); System.out.println(data); data.append(' '); System.out.println(data); data.replace(data.length(),data.length(),"B"); System.out.println(data); } }

2つ目の表示でなぜBが2つ消えるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2017/05/28 01:01

むしろなぜ消えないと思ったのかお聞きしたい
退会済みユーザー

退会済みユーザー

2017/05/28 10:30

消えることがわからないのではなくなぜ消えるのがBなのかがわからないのです。
guest

回答3

0

ベストアンサー

消しているからです。
delete

追記

リンク先に書いてある通り、delete() の第一引数は削除開始するインデクスを示します。インデクスは 0 から始まるので、文字列の一文字目が 0、二文字目が 1 という風になります。ここでは 5 が指定されているので 6 文字目からになります。
第二引数は削除終了する次のインデクスを示します。ここでは 8 が指定されているので 9 文字目の直前まで削除します。
結果、6 7 8 文字目が削除されます。

投稿2017/05/27 23:48

編集2017/05/27 23:58
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/28 10:32

なぜ7は消えないのでしょうか
Zuishin

2017/05/28 10:37

書いたように、消えるのは 6 文字目と 7 文字目と 8 文字目です。 7 は 9 文字目です。 9 は 6 でも 7 でも 8 でもありません。 だから消えません。
退会済みユーザー

退会済みユーザー

2017/05/28 11:09

スペースを数えず文字だけを数えていました。理解できました。 ありがとうございます。
guest

0

StringBuilder: "AAAA BB 7" index : 012345678 ^^^

第二引数の8は、削除範囲に入らない
これ、最初と最後のインデックスを指定するほとんどのメソッドに共通します。

投稿2017/05/28 10:34

編集2017/05/28 10:36
swordone

総合スコア20649

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/28 11:09

理解できました。ありがとうございます。
guest

0

2つ目の表示でなぜBが2つ消えるのでしょうか?

data.delete(5, 8) の結果でしょう?どのような疑問があるのかよくわかりません。

投稿2017/05/27 23:50

koko_u

総合スコア936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/28 10:34

5文字目から8文字目までを消すということですよね? なぜ7は消えないのでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問