Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

StringクラスのNEWについて

こんにちは、
ループ処理内で、文字列を加工する必要があり

for(a=0;a<100;a++){
  String st = new String(b);
          ・
     ・
     ・

のプログラムを組んでいます。
エクリプス上でデバックした限りでは、特に問題なくうごいています。
だた、不当にメモリを消費するロジックのような気がして、環境によっては正しく動かないのでは?
疑問に思っています。
上記のようなString型の使用方法は、問題ないでしょうか?
     
 

5

回答

2524

閲覧

5件の回答

評価

0

そのソースだけでは判断できないですね。
何のためにnewするのか分からないので。
(Stringは加工できません。常に新しいStringが用意されます)

評価

0

>文字列を加工
StringBuilder ですよね?

評価

0

StringBuilder sb = new StringBuilder();

sb.append("hoge1");
sb.append("hoge2");
sb.append("hoge3");

System.out.println(sb.toString());

メモリの問題が絡むので、というのをJDK1.4当初の私の知識ですが・・・現在(SE6)、もっと効率の良いAPIがあるかもしれません。

参考URL:
http://hp.vector.co.jp/authors/VA014436/prg_memo/java/tips/012.html

評価

0

StringBufferをイメージして書いたのですが、
すいません。

誤記ですが、結論からしてあってました。
StringBuilder(JDK1.5から)

評価

0

できあがりのサイズが想定できるなら、StringBuilder(int)のコンストラクタを使う方が良いです。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。