JavaのStringのsubstring()メソッドは、この文字列の部分文字列を返します。このメソッドは常に新しい文字列を返し、元の文字列は変更されません。なぜなら、JavaではStringは不変(immutable)だからです。
JavaのStringのsubstring()メソッド
JavaのStringのsubstring()メソッドには2つのバリアントがあります。
substring(int beginIndex)
:このメソッドは、この文字列の指定されたインデックスの文字から末尾までの部分文字列を返します。substring(int beginIndex, int endIndex)
:部分文字列は指定されたbeginIndexからインデックスendIndex – 1までの文字から始まります。したがって、部分文字列の長さは(endIndex – beginIndex)です。
Stringのsubstring()メソッドの重要なポイント
- 両方の文字列の部分文字列メソッドは、以下の条件のいずれかが満たされた場合に、
IndexOutOfBoundsException
をスローする可能性があります。- beginIndexが負の場合
- endIndexがこのStringオブジェクトの長さよりも大きい場合
- beginIndexがendIndexよりも大きい場合
- 両方のsubstringメソッドにおいて、beginIndexは含まれ、endIndexは含まれない範囲を指定する。
Java String substring()の例
以下は、Javaにおけるsubstringの簡単なプログラムです。
package com.journaldev.util;
public class StringSubstringExample {
public static void main(String[] args) {
String str = "www.journaldev.com";
System.out.println("Last 4 char String: " + str.substring(str.length() - 4));
System.out.println("First 4 char String: " + str.substring(0, 4));
System.out.println("website name: " + str.substring(4, 14));
}
}
上記のsubstringの例プログラムの出力は次のとおりです:
Last 4 char String: .com
First 4 char String: www.
website name: journaldev
substring()メソッドを使用してパリンドロームをチェックする
substring()メソッドを使用して、文字列がパリンドロームかどうかをチェックすることができます。
package com.journaldev.util;
public class StringPalindromeTest {
public static void main(String[] args) {
System.out.println(checkPalindrome("abcba"));
System.out.println(checkPalindrome("XYyx"));
System.out.println(checkPalindrome("871232178"));
System.out.println(checkPalindrome("CCCCC"));
}
private static boolean checkPalindrome(String str) {
if (str == null)
return false;
if (str.length() <= 1) {
return true;
}
String first = str.substring(0, 1);
String last = str.substring(str.length() - 1);
if (!first.equals(last))
return false;
else
return checkPalindrome(str.substring(1, str.length() - 1));
}
}
ここでは、最初の文字と最後の文字が同じかどうかをチェックしています。同じでない場合はfalseを返し、そうでない場合は、最初と最後の文字を削除した部分文字列を再帰的に呼び出します。
GitHubリポジトリからさらに文字列の例をチェックアウトできます。
Source:
https://www.digitalocean.com/community/tutorials/java-string-substring