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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

1577閲覧

appendを使った記載について

icecleam

総合スコア46

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/07/24 16:37

以下のコード1をeclipseでコード2の形式に変換したいのですが、コード2のように記載をしたら、

コード1

java

1 String result = ""; 2 for (int i = 0; i < customers.length; i++) { 3 result += customers[i].getItem() + ","; 4 }

コード2

java

1 String result = ""; 2 for (int i = 0; i < customers.length; i++) { 3 result.append(customers[i].getItem()); 4 result.append(","); 5 }

以下のエラーが出てしまいます。
[警告]
メソッド append(String) は型 String で未定義です

インターネットでも調べて、いろいろ試したのですが、エラーが消えませんでしたので、消す方法をご教授いただきたいです。。

すみませんが、よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずネットで調べた際のappendは何のクラスのappendですか?(私の予想ではStringBuilderです)

Stringクラスにappendというメソッドは存在しません。

+=で文字結合してください。


追記

演算子で調べれば出てきますが、

「+=」は、追加したものを代入する演算子です。

Stringの文字結合を行う方法として+を使用した記法があります。

java

1String a = "ここは"; 2a = a + "teratailです"; 3System.out.println(a); // "ここはteratailです"

ただ上記コードの「a = a + b」という形を略したものが、+=を使用して表現できます。

java

1String a = "ここは"; 2a += "teratailです"; 3System.out.println(a); // "ここはteratailです"

それが質問者様がコード1に記載している内容ですね。

ただ、「+」を使った記法で多くの文字列の結合を行うと、動作が重くなる場合があります。
(Stringクラスはイミュータブルなので、その分のメモリを消費します。)
そこでパフォーマンスの改善に登場したのがStringBuilderです。

java

1StringBuilder a = new StringBuilder("ここは"); 2a.append("teratailです"); 3System.out.println(a.toString()); // "ここはteratailです"

実際にこのぐらいの文字結合では動作の違いの確認は取りにくいですが。

他にも文字結合の方法はいろいろあるので、覚えておくといいです。

投稿2020/07/24 16:43

編集2020/07/25 01:11
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/07/24 16:45

result += customers[i].getItem();
退会済みユーザー

退会済みユーザー

2020/07/24 16:49

すみません、質問をよく読んでませんでした。 appendを使用して追加したいのですね。 でしたら、回答にあるようにStringBuilderクラスを使用したらできます。
icecleam

2020/07/24 16:56

すみません、調べた際のappendのクラスはStringBuilderでした。 もう一つ、申し訳ないのですが+=で結合する方法というのがよくわからなかったです。。。 すみませんが、そこの記載まで教えていただけないでしょうか。 すみませんがよろしくお願いします。
momon-ga

2020/07/24 17:07

+=で結合する方法 は、元のコード1(修正前)のことですよ。
m.ts10806

2020/07/24 20:29

eclipseで 変換したい という意図次第ですね。 一括置換したいという意味なのか、どうか。eclipseは単にツールであってプログラムそのものではないですし。
退会済みユーザー

退会済みユーザー

2020/07/25 01:14 編集

回答を追記しましたので、ご確認をお願い致します。 (メモリ消費うんぬんのところは間違っているかもしれないです。とりあえず遅くなる可能性があるとおもってください。)
icecleam

2020/07/25 05:56

たくさんのご回答と追記部分、ありがとうございました、確認させていただきました。 今回の内容でStringBuilderについての理解を深めることができました。 LOVE-KANONさん、momon-gaさん、m.ts10806さん 改めて、貴重なご反応をいただきありがとうございました。
m.ts10806

2020/07/25 07:47

いえ、私は「要件が確実に伝わる表現になっていない」という指摘しかしていません。
退会済みユーザー

退会済みユーザー

2020/07/25 09:03

m.ts10806様のおっしゃる通りですね。 自分はもっと、文章の理解力とその奥に求めている要件がないか判断する能力を身につけなければならないですね。 まさか「EclipseでString→StringBUilderの変換を求めているかもしれない」と、思いもつきませんでした。脱帽です。 ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問