Javaでの文字列処理時の典型的バグ

文字列を処理しようという時に・・・

IndexOutOfBoundsExceptionStringIndexOutOfBoundsException、これらの例外に出くわすことが多いので。
メモ程度の内容。

まあ存在しないインデックスを指定するときがほとんど。

例えば以下のコードのように。

class Main{
	public static void main(String[] args) {
		String s = "abc";
		// 以下の例はいずれもStringIndexOutOfBoundsExceptionが発生する
		s.charAt(-1);
		s.charAt(3);
		// 抜き出し位置が存在しないので例外が投げられる
		s.substring(1,3);
		// そもそもsubstring(開始位置,終了位置)なので対応していない
		s.substring(2,1);
	}
}

文字列を後ろから抽出したい時は

String型.substring(String型.length - 切り出したい文字列の長さ);

というやり方でやっといてね!とのこと。

コメント

このブログの人気の投稿

Braveブラウザの同期機能をiPhoneで設定した話。

自作のChrome Extensionをインポートした時に "Invalid value for 'content_scripts[0].matches[0]': Empty path."というエラーが出たので解決した

failed: unable to get local issuer certificate (_ssl.c:1123)と出たので解決した話