Javaで後ろから部分文字列を取得する

Javaで部分文字列を取得するには文字列型のsubstringメソッドを使います。str.substring(start, stop); のように開始インデックスと終了インデックスを指定して部分文字列を取得しますが、開始インデックスに 対象文字列の長さ - 部分文字列の長さ を指定することで、末尾から部分文字列を抽出することができます。

ソースコード


/**
 * 文字列の末尾から部分文字列を取得する関数
 *
 * @param str 元の文字列
 * @param length 取得したい部分文字列の長さ
 * @return 部分文字列
 * @throws IllegalArgumentException str が null または length が文字列の長さを超えている場合にスローされます
 */
public static String substringFromEnd(String str, int length) {
	if (str == null) {
		throw new IllegalArgumentException("文字列が null です。");
	}

	if (str.length() < length) {
		throw new IllegalArgumentException("指定された長さが文字列の長さを超えています。");
	}

	return str.substring(str.length() - length);
}

テストコード


import java.util.*;

public class Main {
	public static void main(String[] args) throws Exception {
		System.out.println(substringFromEnd("abcdefg", 3)); // 出力: "efg"
	}

	/**
	* 文字列の末尾から部分文字列を取得する関数
	*
	* @param str 元の文字列
	* @param length 取得したい部分文字列の長さ
	* @return 部分文字列
	* @throws IllegalArgumentException str が null または length が文字列の長さを超えている場合にスローされます
	*/
	public static String substringFromEnd(String str, int length) {
		if (str == null) {
			throw new IllegalArgumentException("文字列が null です。");
		}

		if (str.length() < length) {
			throw new IllegalArgumentException("指定された長さが文字列の長さを超えています。");
		}

		return str.substring(str.length() - length);
	}
}

Follow me!

photo by:Jonas Jacobsson