Java > Stringの使い方

更新日 2014-12-31
広告
Stringクラスは、文字列を表現するクラスです。

基本

Stringを使うと、文字列の連結、部分抽出、分割などが可能です。 個人的によく使うStringクラスのメソッドのサンプルを、以下に記します。
public class StringTest {
    public static void main(String[] args) {
    	// 文字列の定義
    	String str1 = "abc";
    	String str2 = "def";

    	// 文字列の連結
    	String newStr = str1 + str2;
    	System.out.println("newStr = " + newStr);

    	// 文字列の抽出
    	String str3 = "abcdef";
    	String subStr = str3.substring(2, 4); // "cd"を抽出する
    	System.out.println("subStr = " + subStr);

    	// 文字列の前方一致
    	if (str3.startsWith("abc")) { "一致"
    	    System.out.println("Start with abc");
    	}

    	// 文字列の分割
    	String str4 = "ab,cd,ef"; // "ab", "cd", "ef"に分割
    	String[] tokens = str4.split(",");
    	System.out.println("token length = " + tokens.length);
    	for (String token : tokens) {
    	    System.out.println("token = " + token);
    	}

    	// 文字列の置換
    	String str5 = "aaabbbccc";
    	String replaceStr = str5.replaceAll("a", "z"); // 全ての"a"を"z"に置換
    	System.out.println("replaceStr = " + replaceStr);

    	// 数値から文字列へ変換
    	String str6 = String.valueOf(123.456);
    	System.out.println("str6 = " + str6);
    }
}
これを実行すると以下のようになります。
String$ java StringTest 
newStr = abcdef
subStr = cd
Start with abc
token length = 3
token = ab
token = cd
token = ef
replaceStr = zzzbbbccc
str6 = 123.456

文字列の連結

複数の文字列を連結するサンプルコードです。
String name1 = "hoge ";
String name2 = name1 + "hoge";
String name3 = name2 + "abc";
この方法だと、name1, name2, name3のそれぞれについてStringクラスのインスタンスを作成することになります。この程度であれば大した負荷ではありあませんが、Stringオブジェクトが多い場合は、以下のようにStringBuffer (もしくはStringBuilder)を使うほうが性能面で有利でしょう。
StringBuffer sb = new StringBuffer();
sb.append("hoge ");
sb.append("hoge");
sb.append("abc");
sb.toString();

この方法なら、インスタンス生成の処理は1度しか発生しないので、Stringオブジェクトを何度も作るより高速です。

java.lang.StringBuilderは、StringBufferの非スレッドセーフ版です。基本的な使い方はStringBufferと一緒ですが、非スレッドセーフなので、単一スレッドから利用される場合のみStringBuilderを使うべきです。

文字列の分割

半角スペースで文字列を分割するには、以下のようにします。
text.split("\\s")

文字列の置換

2つ以上の半角スペースを、1つの半角スペースに変換には、以下のようにします。
text.replaceAll(" {2,}", " ")
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system