Javaの文字列から1文字を取得するサンプルです。
目次
サンプル | charAtとは |
文字列からchar型で1文字を取得する | |
ループで1文字ずつ見るサンプル | |
文字列からString型で1文字を取得する(substring) |
charAtとは
public char charAt(int index) |
- 文字列のうち、引数の位置にある文字をchar型で返します。
- 文字列の最初の1文字目の位置は0です。
- 引数が範囲外のときは、IndexOutOfBoundsExceptionの例外が発生します。
- 引数がない場合は、コンパイルエラーになります。
文字列からchar型で1文字を取得する
package test1;
public class Test1 {
public static void main(String[] args) {
String a = "ABあい";
System.out.println(a.charAt(0)); // A
System.out.println(a.charAt(1)); // B
System.out.println(a.charAt(2)); // あ
System.out.println(a.charAt(a.length()-1)); //い
// System.out.println(a.charAt()); // コンパイルエラー
// System.out.println(a.charAt(9)); // IndexOutOfBoundsException
}
}
8~12行目は引数の位置にある文字を返します。最初の1文字目は0から始まります。
14行目は最後の文字を取得しています。lengthで文字列の長さを取得して1引きます。
16行目は引数がない場合です。コンパイルエラーになります。
18行目は引数が範囲外の場合です。IndexOutOfBoundsExceptionの例外が発生します。
ループで1文字ずつ見る
package test1;
public class Test1 {
public static void main(String[] args) {
String str1 = "ABあい";
String outMoji = "";
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) == 'あ') {
continue;
}
outMoji = outMoji + str1.charAt(i);
}
System.out.println(outMoji); // ABい
}
}
8行目は、for文で5行目の文字の数だけループします。
9行目は、charAtメソッドで1文字ずつ値を判定しています。該当した場合は10行目のcontinueで8行目に戻ります。charAtメソッドの戻り値はchar型なので、「あ」はシングルコーテーションで括ります。
14行目は、処理結果が表示されます。
以下はJava8 API仕様のcharAtメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#charAt-int-
文字列からString型で1文字を取得する(substring)
public String substring(開始位置, 終了位置) |
- 1つめの引数の「開始位置」から2つめの引数の「終了位置」の前にある文字までを返します。
- 最初の1文字目の位置は0です。
package test1;
public class Test1 {
public static void main(String[] args) {
String a = "あいうえお";
System.out.println(a.substring(0, 1)); // あ
System.out.println(a.substring(1, 2)); // い
System.out.println(a.substring(2, 3)); // う
}
}
8~10行目は、指定の位置から1文字取得しています。
以下はJava8 API仕様のsubstringメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#substring-int-int-
関連の記事
Java replace 文字列を置換するサンプル
Java 文字列の位置を取得(indexOf/lastIndexOf)
Java substring 文字列を切り出す