Stringの代表的API

StringのAPI全般に言えることはStringは変更不可なので、操作結果が反映された新しいオブジェクトを戻り値で受け取るということ。
変更可能なStringBuilder/StringBufferとはここが違う。


■文字列の連結
concat(String str)

String str = "abcdef";
str = str.concat("012");
System.out.println(str);
出力結果:abcdef012

■大文字に変換
toUpperCase()

String str = "abcdef";
str = str.toUpperCase();
System.out.println(str);
出力結果:ABCDEF

■前後の空白を削除
trim()

String str = "  abcdef  ";
str = str.trim();
System.out.println(str);
出力結果:abcdef

■大文字と小文字を考慮せずに比較
boolean equalsIgnoreCase(String str)

String str = "aBcD";
System.out.println(str.equalsIgnoreCase("AbCd"));
出力結果:true

■文字列の一部を別の文字列に置換する
replace(CharSequence target, CharSequence replacement)

String str = "abcdefbc";
str = str.replace("bc", "012");
System.out.println(str);
出力結果:a012def012
※targetが複数存在する場合、すべて置換される点に注意。

■文字列の一部を抽出する
substring(int beginIndex)
substring(int beginIndex, int endIndex)
StringBulderのdelete、replaceと同様に、endIndexは含まれないことに注意。

String str = "abcdef"
str = str.substring(3);
System.out.println(str);
出力結果:def
String str = "abcdef"
str = str.substring(3, 5); // endIndexを指定するケース
System.out.println(str);
出力結果:cd
String str = "abcdef"
str = str.substring(3, 7); // endIndexが範囲外のケース
System.out.println(str);
出力結果:Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7
String str = "abcdef"
str = str.substring(3, 3); // startIndex、endIndexに同じ値を指定したケース
System.out.println(str);
出力結果:   ←長さ0の文字列を指定したことになり何も出力されない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です