👩🏼‍🏫

【Java】Stringクラスのメソッド

2022/01/23に公開

はじめに

Java Silverの勉強中です。
Stringクラスのメソッドがたくさんあって覚えられなかったのでまとめました。

charAt(int index)

引数で指定された位置にある1文字を、文字列から抜き出して戻す

  • 文字列の先頭は0番目
  • 範囲外の文字を指定すると、例外(java.lang.StringIndexOutOfBoundsException)がスローされる
String str1 = "abcde";
System.out.println(str1.charAt(3)); // d
abcde
01234 // 先頭は0
String str2 = "abcde";
System.out.println(str2.charAt(5)); // 範囲外のため例外

substring(int beginIndex, int endIndex)

引数で指定された位置にある任意の文字列を、文字列から抜き出して戻す

  • 引数を1つ指定した場合は、指定位置から最後までを抜き出す
  • 引数を2つ指定した場合は、その範囲の文字を抜き出す
String str1 = "abcde";
System.out.println(str1.substring(3)); // de
String str2 = "abcde";
System.out.println(str2.substring(2, 4)); // cd
  • 抜き出す文字の範囲は、文字と文字の間に線を引いて番号を振ると分かりやすい!
 a b c d e
| | | | | |
0 1 2 3 4 5

indexOf(String str)

引数で指定された文字が最初に出現する位置を戻す

  • 文字列の先頭は0番目
  • 指定した文字が存在しない場合は、-1を返す
String str1 = "abcde";
System.out.println(str1.indexOf('c')); // 2
String str2 = "abcde";
System.out.println(str2.indexOf('f')); // -1

startsWith(String prefix)

文字列が指定された引数で始まるかどうか調べる

  • 結果は真偽値である
String str = "abcde";
System.out.println(str.startsWith("ab")); // true

endsWith(String suffix)

文字列が指定された引数で終わるかどうか調べる

  • 結果は真偽値である
String str = "abcde";
System.out.println(str.endsWith("de")); // true

length()

文字列の長さを戻す

  • 半角も全角も1文字としてカウントする
String str = "abcde";
System.out.println(str.length()); // 5
  • 長さは1から数えるので注意!
abcde
12345 // 先頭は1!

replace(CharSequence target, CharSequence replacement)

文字列を置き換えて戻す

  • 置き換えは先頭から始まり、最後まで行われる
  • Stringの引数を渡せるのは、StringクラスがCharSequenceクラスのサブクラスだから
String str1 = "aaaaa";
System.out.println(str1.replace("aa", "b")); // bba
  • char型の場合は、replace(char oldChar, char newChar)
String str2 = "aaaaa";
System.out.println(str2.replace('a', 'b')); // bbbbb
  • 2つの型は指定できない
str.replace("aa", 'b'); // コンパイルエラー

concat(String str)

指定した文字列を今ある文字列と連結し、新しい文字列を戻す(+演算子と同じような働き)

String str1 = "Java";
String str2 = "Script";
System.out.println(str1.concat(str2)); // JavaScript

参考

https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html
https://honto.jp/isbn/978-4-295-00762-3?partnerid=aftoc1904996260&booktype=ebook

Discussion