Stringクラス
文字列に対するメソッドのまとめ
equals()
2つのインスタンスの内容が同じかを比較する。同じであればtrue、差異があればfalseを返す単純にString型の文字列を比較する時はequals()メソッドを使用する。
//moji1とmoji2を比較して結果を表示させる
System.out.println(moji1.equals(moji2));
compareTo()
文字列と比較する文字列が等しい場合、0を戻り値として返す
比較元の文字列が比較先の文字列より大きい値の場合、正の値を返す
比較元の文字列が比較先の文字列より小さい値の場合、負の値を返す
System.out.println(比較元.compareTo(比較先));
文字列を比較した場合、比較元が比較先より50音順が早ければ負の値。
比較元が比較先より50音順が遅ければ正の値。
文字列が同じなら0。
(比較元アイウエオは比較先カキクケコより50音順が遅れているからマイナスと覚える。50音順が比較先より早ければプラスポイント。)
package text.section_19;
public class String_Test2 {
public static void main(String[] args) {
String A = "あいうえお";
String B = "かきくけこ";
String C = "あいうえお";
// 文字列の比較
System.out.println(A.compareTo(B));
System.out.println(B.compareTo(A));
System.out.println(A.compareTo(C));
}
}
実行結果
-9
9
0
数値と文字数も同じように比較してくれる。
// 文字数の比較
package text.section_19;
public class String_Test2 {
public static void main(String[] args) {
String A = "あ";
String B = "あああ";
String C = "あ";
// 文字数の比較
System.out.println(A.compareTo(B));
System.out.println(B.compareTo(A));
System.out.println(A.compareTo(C));
}
}
実行結果
-2
2
0
数値の比較
package text.section_19;
public class String_Test2 {
public static void main(String[] args) {
String A = "1";
String B = "10";
String C = "1";
// 数値の比較
System.out.println(A.compareTo(B));
System.out.println(B.compareTo(A));
System.out.println(A.compareTo(C));
}
}
実行結果
-1
1
0
substring()
指定した位置の文字列を切り出して返す。
文字列にインデックスが振られており、開始位置が0となる。
package text.section_19;
public class String_Test2 {
public static void main(String[] args) {
String A = "私の名前は山田花子です";
// 開始位置のみ指定
System.out.println(A.substring(5));
//開始位置と終点を指定
System.out.println(A.substring(5,9));
System.out.println(A.substring(5,10));
System.out.println(A.substring(5,11));
}
}
実行結果
山田花子です
山田花子
山田花子で
山田花子です
0私1の2名3前4は5山6田7花8子9で10す11
少々わかりづらい羅列だが、インデックスは上記のように振られている。
replace()
文字列を置換し、戻り値は置換後の文字列
package text.section_19;
public class String_Test2 {
public static void main(String[] args) {
String A = "猫";
String B = "犬 と猫";
String C = "犬とライオン";
// "猫"を"犬"に置換
System.out.println(A.replace("猫","犬"));
//全角の空白2個を空白なしに置換
System.out.println(B.replace(" ",""));
// 一部のみ置換
System.out.println(C.replace("ライオン","猫"));
}
}
実行結果
犬
犬と猫
犬と猫
文字列の一部修正したいところだけを、置換することも可能。
split()
指定した文字列をポイントにして文字列を分割して、分割後の文字列を返す。何分割にするかも指定できる。
package text.section_19;
public class String_Test2 {
public static void main(String[] args) {
String A = "猫と犬と鳥と魚";
// "と"をポイントにして分割
String[] array1 = A.split("と");
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);
}
System.out.println("以下は分割数を指定した場合");
// 分割数を指定
String[] array2 = A.split("と",2);
for (int i = 0; i < array2.length; i++) {
System.out.println(array2[i]);
}
}
}
実行結果
猫
犬
鳥
魚
以下は分割数を指定した場合
猫
犬と鳥と魚
分割すれば4つになる文字列を2分割や3分割をした場合、上記のように1番目は一文字で2番目以降にまとめられる。
trim()
文字列の先頭と末尾の空白を削除して返す
package text.section_19;
public class String_Test2 {
public static void main(String[] args) {
String A = " あい うえお ";
String B = "\n\tかき\tくけこ\n";
System.out.println(A.trim());
System.out.println(B.trim());
}
}
実行結果
あい うえお
かき くけこ
文字列の先頭と末尾の空白やタブ、エスケープシーケンスは綺麗に消されている。
一方で、文字列の空白はそのまま。(文字列内の空白を消すときはreplace()
)