Javaで文字列を切り出す簡単な方法

Javaは文字列操作が苦手な言語です。PHPからプログラミングを始めた人は、Javaの文字列関数が低機能であることに驚かされます。

文字列の切り出し操作はsubstring

文字列の右から、左から、または一部分を切り出すことがあります。その場合に、それぞれの処理で別の関数が用意されている言語もありますが、Javaの場合は全てsubstringに統一されています。

substring関数は引数を2つとり、第一引数は開始インデックス、第二引数は終了インデックスになります。第二引数を省略した場合は文字列の末尾まで取得することができます。第二引数が取得する文字数であれば、もう少し使いやすいのですが。前世紀のJavaの開発者のやる気が無かった影響を、未だに受けている言語がJavaです。

先頭から切り出す

これは簡単です。

String input = "abcdef";
String output = input.substring(0, 2);
System.out.println(output);

この場合の出力は「abc」となります。
なんで3文字なんだ!?という意見が出てきそうですね。最初の文字は「0文字目」として数えるため、この指定では「0」「1」「2」の文字が切り出されます。仕方ないのかもしれませんが、やはり文字数で切り出したかったですね。

末尾から切り出す

困ったことに末尾から切り出す関数はありません。

String input = "abcdef";
String output = input.substring(input.length() - 2);
System.out.println(output);

この場合の出力は「ef」となります。
さっきは2と書いて3文字取れたから、逆でも3文字取れるのだろう?とか勘違いしていると、大変なことになります。

まとめ

Javaで文字列操作をするときは注意が必要です。

システム開発

Posted by @erestage