LoginSignup
1
0

More than 3 years have passed since last update.

Stringクラスのメソッド

Last updated at Posted at 2020-05-14

Stringクラスにはたくさんのメソッドが用意されており、自分自身漏れていたり、知らなかったものもあったので、この際にまとまることにしました。
随時更新予定です。

charAt(int index)

指定されたインデックスのchar値を返す。

String test = "あいうえおかきくけこ";

//指定されたインデックスのchar値を返します。
System.out.println(test.charAt(0));
System.out.println(test.charAt(2));
System.out.println(test.charAt(5));



codePointAt(int index)

指定されたインデックス位置の文字(Unicodeコード・ポイント)を返す。

String test = "あいうえおかきくけこ";

//指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。
System.out.println(test.codePointAt(0));
System.out.println(test.codePointAt(1));
System.out.println(test.codePointAt(6));
12354
12356
12365

codePointBefore(int index)

指定されたインデックスの前の文字(Unicodeコード・ポイント)を返す。

String test = "あいうえおかきくけこ";

//指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。
System.out.println(test.codePointBefore(1));
System.out.println(test.codePointBefore(2));
System.out.println(test.codePointBefore(7));
12354
12356
12365

codePointCount(int beginIndex, int endIndex)

このStringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返す。

String test = "あいうえおかきくけこ";

//このStringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。
System.out.println(test.codePointCount(0, 1));
System.out.println(test.codePointCount(2, 4));
System.out.println(test.codePointCount(3, 9));
1
2
6

compareTo(String anotherString)

2つの文字列を辞書的に比較する。

String test = "あいうえおかきくけこ";

//2つの文字列を辞書的に比較します。
//引数文字列がこの文字列に等しい場合は、値0
//文字列が文字列引数より辞書式に小さい場合は、0より小さい値
//文字列引数より辞書式に大きい場合は、0より大きい値
System.out.println(test.compareTo("あいうえおかきくけこ"));
System.out.println(test.compareTo("あいうえお"));
System.out.println(test.compareTo(""));
0
5
10

compareToIgnoreCase(String str)

大文字と小文字の区別なしで、2つの文字列を辞書的に比較する。

String test = "ABCD";

//大文字と小文字の区別なしで、2つの文字列を辞書的に比較します。
//大文字と小文字の区別なしで、指定されたStringがこのStringより大きい場合は負の整数、
//同じ場合は0、小さい場合は正の整数。
System.out.println(test.compareToIgnoreCase("abcd"));
System.out.println(test.compareToIgnoreCase("ABCD"));
System.out.println(test.compareToIgnoreCase("E"));
0
0
-4

concat(String str)

指定された文字列をこの文字列の最後に連結する。

String test = "ABCD";

//指定された文字列をこの文字列の最後に連結します。
System.out.println(test.concat("E"));
System.out.println(test.concat("EWWWW"));
ABCDE
ABCDEWWWW

contains(CharSequence s)

この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返す。

String test = "ABCD";

//この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返す。
System.out.println(test.contains("A"));
System.out.println(test.contains("a"));
System.out.println(test.contains("w"));
true
false
false

contentEquals(CharSequence cs)

この文字列と指定されたCharSequenceを比較する。

String test = "ABCD";

//この文字列と指定されたCharSequenceを比較します。
System.out.println(test.contentEquals("ABCD"));
System.out.println(test.contentEquals("AC"));
System.out.println(test.contentEquals("a"));
true
false
false

contentEquals(StringBuffer sb)

この文字列と指定されたStringBufferを比較します。

String test = "ABCD";

//この文字列と指定されたStringBufferを比較します。
System.out.println(test.contentEquals("A"));
System.out.println(test.contentEquals("ABCD"));
System.out.println(test.contentEquals("AD"));
System.out.println(test.contentEquals("s"));
false
true
false
false

endsWith(String suffix)

この文字列が、指定された接尾辞で終るかどうかを判定する。

String test = "ABCD";

//この文字列が、指定された接尾辞で終るかどうかを判定する。
System.out.println(test.endsWith("D"));
System.out.println(test.endsWith("d"));
System.out.println(test.endsWith("A"));
true
false
false

equals(Object anObject)

この文字列と指定されたオブジェクトを比較します。

String test1 = "ABCD";
String test2 = "abcd";

//この文字列と指定されたオブジェクトを比較します。
System.out.println(test1.equals(test2));
false

equalsIgnoreCase(String anotherString)

大文字と小文字を区別せずに、このStringを別のStringと比較する。

String test1 = "ABCD";
String test2 = "abcd";

//この文字列と指定されたオブジェクトを比較します。
System.out.println(test1.equals(test2));
true

getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

この文字列から、コピー先の文字配列に文字をコピーする。

srcBegin - コピー対象文字列内の最初の文字のインデックス。
srcEnd - コピー対象文字列内の最後の文字のあとのインデックス。
dst - 転送先配列。
dstBegin - コピー先の配列内での開始座標。

コピーされる文字数はsrcEnd - srcBeginである。

String Str1 = new String("ABCD");
char[] Str2 = new char[6];

//この文字列から、コピー先の文字配列に文字をコピーします。

//開始インデックスは0
//コピー対象の文字数は3
//Str2にコピーする
//コピー先の配列内の開始座標は0
Str1.getChars(0, 3, Str2, 0);
System.out.println(Str2);

Str1.getChars(2, 4, Str2, 0);
System.out.println(Str2);
ABC
CDC

indexOf(String str), indexOf(int ch)

この文字列内で、指定された文字が最初に出現する位置のインデックスを返す。

※文字がない場合は-1。

String test1 = "ABCD";

//この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。
System.out.println(test1.indexOf("C"));
System.out.println(test1.indexOf("A"));
System.out.println(test1.indexOf("W"));
2
0
-1

indexOf(String str, int fromIndex)

指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返す。

※出現箇所がない場合は-1。

String test1 = "ABCD";

//指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。

//開始位置0から"C"が出現する位置は何か
System.out.println(test1.indexOf("C",0));
//開始位置2から"A"が出現する位置は何か
System.out.println(test1.indexOf("A",2));
//開始位置3から"D"が出現する位置は何か
System.out.println(test1.indexOf("D",3));
2
-1
3

isEmpty()

length()が0の場合にのみ、trueを返す。

String test1 = "ABCD";
String str1 = "";
String str2 = null;
System.out.println(test1.isEmpty());
System.out.println(str1.isEmpty());

//NullPointerException
System.out.println(str2.isEmpty());
false
true
NullPointerException

lastIndexOf(int ch), lastIndexOf(String str)

この文字列内で、指定された文字が最後に出現する位置のインデックスを返す。

※出現箇所がない場合は-1

String str = "AABBBCD";

//この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。

//'A'は最後に1番目に出現しているので、1
System.out.println(str.lastIndexOf('A'));

//"B"は最後に4番目に出現しているので、4
System.out.println(str.lastIndexOf("B"));

//"U"は存在しないので、-1
System.out.println(str.lastIndexOf("U"));
1
4
-1

lastIndexOf(String str, int fromIndex)

この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返す(検索は指定されたインデックスから開始され、先頭方向に行われる)。

String str = "AABBBCD";

//この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します
System.out.println(str.lastIndexOf("B",3));
System.out.println(str.lastIndexOf("B",2));
System.out.println(str.lastIndexOf("A",4));
3
2
1

length()

この文字列の長さを返す。

String str = "AABBBCD";

//文字列の長さを返す。
System.out.println(str.length());
7

substring(int beginIndex), substring(int beginIndex, int endIndex)

この文字列の部分文字列である文字列を返す。

※部分文字列の長さはendIndex-beginIndexになる。

String str = "AABBBCD";

//文字列の部分文字列である文字列を返します。
System.out.println(str.substring(2));
System.out.println(str.substring(5));
System.out.println(str.substring(2,5));
System.out.println(str.substring(3,6));
BBBCD
CD
BBB
BBC

toCharArray()

この文字列を新しい文字配列に変換する。

String str = "AABBBCD";
char[] charAry  = str.toCharArray();

//文字列を新しい文字配列に変換します。
for(char i : charAry) {
        System.out.println(i);
}
A
A
B
B
B
C
D

toLowerCase()

デフォルト・ロケールのルールを使って、このString内のすべての文字を小文字に変換する。


//String内のすべての文字を小文字に変換します。
System.out.println(str.toLowerCase());
aabbbcd

toUpperCase()

デフォルト・ロケールのルールを使って、このString内のすべての文字を大文字に変換する。

String str = "asdfgh";

//String内のすべての文字を大文字に変換します。
System.out.println(str.toUpperCase());
ASDFGH

trim()

値がこの文字列である文字列を返します(先頭と末尾の空白は削除される)。

String str = "  asdfgh ";

//この文字列の先頭と末尾の空白を削除した値を持つ文字列、またはこの文字列(先頭と末尾に空白が存在しない場合)。
System.out.println(str);
System.out.println(str.trim());
  asdfgh 
asdfgh

valueOf(boolean b)

boolean引数の文字列表現を返す。

String str = "  asdfgh ";
String str2 = "true";

//引数がtrueの場合は"true"に等しい文字列が返され、そうでない場合は"false"に等しい文字列が返される。
System.out.println(Boolean.valueOf(str));
System.out.println(Boolean.valueOf(str2));
false
true

valueOf(int i)

int引数の文字列表現を返します。

String str = "asdfgh";
String str2 = "123456";

//NumberFormatException
System.out.println(Integer.valueOf(str));
System.out.println(Integer.valueOf(str2));
NumberFormatException
123456

valueOf(double d), valueOf(float f), valueOf(long l)

double,float,long引数の文字列表現を返す。

String str = "1234565";

System.out.println(Long.valueOf(str));
System.out.println(Float.valueOf(str));
System.out.println(Double.valueOf(str));
1234565
1234565.0
1234565.0
1
0
1

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
1
0