Going my way

いいなと思ったことをメモしていきます。

StringBuilderクラス、エスケープなどまとめ


Advertisements


エスケープ処理とは
特別な文字を使い、後続する文字に別の意味を持たせる処理のこと。

エスケープシーケンスとは
エスケープ処理で表記した文字のこと。

改行文字を含む文字列がほしい場合

String str = "hoge/nfuga";

と書く。すると
hoge
fuga
と出力される。

StringBuilderクラス

StringBuilderクラスとStringクラスはCharSequenceという共通のインターフェースを実装しているため、共通のメソッドを提供する。

public final class StringBuilder
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence

実際にソースをみても、implement CharSequenceってなってるね。


StringBuilderの同値比較
StringBuilderは同じ文字列の内容であっても、StringBuilderオブジェクトとの比較では偽を返す。

StringBuilderで文字列の比較を行う時は、
toStringメソッドでStringオブジェクトに変換してから比較する。

例を以下に示す

package string;

public class UseStringBuilder {
	public static void main(String[] args){
		StringBuilder sb1 = new StringBuilder("abc");
		StringBuilder sb2 = new StringBuilder("abc");
		
		System.out.println("==:"+ (sb1==sb2));
		
		System.out.println("equals:" + (sb1.equals(sb2)));
		
		System.out.println("contentEquals:" + (sb1.toString().contentEquals(sb2)));
	}
}

結果

==:false
equals:false
contentEquals:true