文字列の追加(Java)
(ブログ記事の一覧は「こちら」)
(今回は、Javaのみの内容になります)
前回は、文字列を分割することについて学びました。今回は、その逆で、文字列を追加(連結)する方法について確認していきます。
Stringクラスを使って文字列を連結する場合、+演算子を使用します。
String str = "あいう" + "えお" + "かきく" + "けこ";
特に問題の無いように見えますが、実はJavaプログラミングとしては適切な書き方とは言えません。
実は、+演算子で文字列を連結するたびに、新たにStringクラスを生成する、という処理を行っています。その結果、メモリの使用量が増えることで負荷が大きくなり、処理が遅くなってしまうことになります。
(上記の例くらいであれば、影響はほとんどありませんが^^;)
これらの問題を解決するための方法として、StringBuilderクラスというものを使用します。(似た内容でStringBufferクラスというものもありますが、今回は説明は行いません)
以下は、StringBuilderクラスを使用した、文字列を追加(連結)する方法のサンプルです。
Javaでの記述例
package com.test; public class TestApp { public static void main(String[] args) { // 配列 String[] arFruit = {"りんご", "みかん", "メロン", "バナナ"}; // 文字列の連結 StringBuilder sbFruit = new StringBuilder(); sbFruit.append(arFruit[0]); sbFruit.append(arFruit[1]); sbFruit.append(arFruit[2]); sbFruit.append(arFruit[3]); System.out.println(sbFruit.toString()); } }
出力結果
りんごみかんメロンバナナ
課題
以下のカンマ区切りの文字列に対して、カンマを取り除いた文字列に変換して、その結果を出力してください。
String str = "りんご,みかん,メロン,バナナ";
(方法の1つとして、(前回学んだ)文字列の分割と、文字列の追加を行うことで実現できます。)
package com.test; public class TestApp { public static void main(String[] args) { String str = "りんご,みかん,メロン,バナナ"; // TODO: 文字列の分割 // TODO: 文字列の追加 // 分割、追加した文字列を出力 System.out.println(sbFruit.toString()); } }
出力結果
りんごみかんメロンバナナ