0
0

文字列のメソッド まとめ

Posted at

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())

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0