スポンサーサイト





上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

StringBuilder 文字列の連結





この記事の目的は、文字列の連結処理を効率的に行えるようにすることです。



文字列を連結する一番簡単な方法は、+(プラス)演算子を使う方法です。

package kihon;

public class Sample {
public static void main(String[] args) {

String address="東京都"+"千代田区";
System.out.println(address);
}
}


実行結果:

東京都千代田区




次に、Stringクラスのconcat()メソッドを使う方法を書きます。

package kihon;

public class Sample {
public static void main(String[] args) {

String address="東京都".concat("千代田区");
System.out.println(address);
}
}



Stringとイミュータプル の記事に書きましたが、String型の文字列を連結するのは効率の悪い処理です。

すなわち、上の例でいうと、「東京都」「千代田区」「東京都千代田区」という3つのString型のオブジェクトが生成されることになります。

処理数が少なければ問題はありませんが、大量の処理をする場合はメモリを圧迫して処理が遅くなります。

文字列の連結を効率的に行うには、StringBuilderまたはStringBufferクラスを使います。

StringBuilderクラスはStringBufferクラスを改良したクラスで、こちらのほうが高速なので通常はStringBuilderクラスを使います。

package kihon;

public class Sample {
public static void main(String[] args) {

StringBuilder address=new StringBuilder();
address.append("東京都");
address.append("千代田区");
System.out.println(address);
}
}


StringBuilderの使い方は、StringBuilderオブジェクトを作って、append()メソッドで連結していきます。

上の例では、コンストラクタに引数がありません。この場合、文字を持たず、初期容量が16文字である文字列ビルダを構築します。

この文字列ビルダに「東京都」と「千代田区」の文字列を格納します。オブジェクトは1つしか生成されないので処理効率は良いです。

それでは、別の形のコンストラクタで記述してみましょう。

package kihon;

public class Sample {
public static void main(String[] args) {

StringBuilder address=new StringBuilder("東京都");
address.append("千代田区");
System.out.println(address.toString());
}
}


今回は、文字列ビルダにコンストラクタであらかじめ文字列を格納しました。

StringBuilder(String str)



出力については、今回は toString()メソッドを呼んでいます。StringBuilderオブジェクトのままでも出力することに問題はありませんが、Stringのほうが使い回すには便利なこともあるかもしれません。

関連記事

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://javamania.blog25.fc2.com/tb.php/108-3136343a
  • 閉じるボタン
クラスライブラリ解説 目次
クラスライブラリとは
 ├ Java APIの調べ方
 ├ Objectクラスを調べる
 ├ ライブラリのインポート
 ├ 完全修飾クラス名を調べる
 ├ staticインポート
 ├ 外部ライブラリの利用

文字列を扱う
 ├ Stringとイミュータプル
 ├ StringBuilder 文字列の連結
 ├ toString()のオーバーライド
 ├ toXxCase() 大文字と小文字
 ├ compareTo() 値の比較
 ├ parseDouble() 文字を小数値に
 └ 文字列を抜き出す
 ├ char配列からString型へ変換
 ├ 空白文字の除去

日付を扱う
 ├ Calendar 現在の日付
 ├ Date 日付の表示

数値演算を扱う
 ├ round() 切上・切捨・四捨五入
 ├ BigDecimal
 ├ sqrt(),pow() 累乗と平方根
 ├ BigInteger
 ├ int型の最大値・最小値
 ├ random() 乱数作成

ファイルを扱う
 ├ ファイルの存在確認
 ├ ファイルを作成
 ├ ファイルの削除
 ├ ファイルサイズを調べる

入出力ストリーム
 ├ ファイルを読み込む
 ├ 画像ファイルのコピー
 ├ 日本語の読み込みと書き出し
 ├ バッファ入出力
 ├ データ型フリーの出力ストリーム
 ├ getBytes()メソッド

書式つき入出力
 ├ 書式を指定して出力
 ├ 引数インデックス
 ├ 整数値のフォーマット
 ├ 小数値のフォーマット
 ├ 九九の表のフォーマット

例外処理
 ├ printStackTrace()
 ├ NullPointerException
 └ NumberFormatException
月別アーカイブ
カテゴリ
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。