LoginSignup
4
3

More than 3 years have passed since last update.

知っているとちょっと便利だけど以外に知らないJava Stringクラスのメソッドたち

Last updated at Posted at 2019-10-06

この記事ではJava11のStringクラスのメソッドで便利だけど意外と知られていないものを独断と偏見でまとめてみます。より短く、良いコードを目指して、我々にとって馴染みの深いクラスを一度立ち止まって復習していきましょう。

空白削除

業務系のコードを書くときに文字列の前後の空白を削除したいという場面は、何百回と遭遇します。
そのときに、よく使うメソッドはtrimメソッドですよね。

"   aaa   ".trim(); // aaa

しかし、trimメソッドの場合、全角スペースは削除対象外です。
全角スペースを含めて削除したいときに役に立つのが、stripメソッドです。
stripメソッドは前後の全角スペースを含む空白文字を削除してくれます。

"   aaa   ".strip(); // aaa
"    aaa   ".strip(); // aaa

さらに、先頭だけの文字列を削除したい場合には「stripLeading」を。後続だけを削除したい場合には「stripTrailing」を使用することができます。

文字繰り返し

文字列の桁数チェックのテストコードを書くときによく以下のような感じソースコードを書いていませんか?

lengthCheck("aaaaa");

5桁ぐらいのチェックでしたら、問題ありませんが120桁とか長くなると面倒だし何よりも汚いですよね。
そんなときに、役に立つのが「repeat」メソッドです。

"a".repeat(5); // aaaaa

指定の文字列を繰り返すことができる便利なメソッドです。文字列の長さをrepeatの引数で管理できるため、
桁数チェック系のテストコードで積極的に使用して明確にわかりやすくしていきましょう。

CSV作成のときに便利

業務アプリを作成しているとCSVファイルを作成して他のシステムに連携などは、よくあるかと思います。
そんなときに知りたいメソッドが「join」メソッドです。このメソッドを使用することでカンマ区切りの文字列が
簡単に作れるようになります。

String.join(",", "a","b","c"); // a,b,c

もちろん配列に格納された文字も区切り文字を含めた文字列にすることができます。

String[] a = {"a","b","c"};
String.join(",", a);  // a,b,c

equalsで文字列比較をしたくない人達に

文字列の比較をするときにJavaでは当たり前に使われているequalsメソッドです。
しかし、これ以外にもStringの標準メソッドを使って文字列比較をすることができます。

String t = new String("a");
String s = new String("a");

t == s // false
t.intern() == s.intern() // true

JavaDocを見ると、internでtrueになるケースは、t.equals(s)と同じとわかります。
他の言語を学んでいて、equalsに慣れない人は使うといいかもしれません。
(仕事で使う人はあまり見かけませんが)

ApacheのStringUtilsが使えない時の空文字判定

厳しい現場になるとOSSが使えず、StringUtilsが使えないケースがあります。
そんなときに知っておきたいのがisBlankメソッドです。
String標準メソッドで空文字の判定ができます。

String s = "";     // 空文字
String t = " ";    // 半角スペース
String r = " ";   // 全角スペース
String i = null;   // null

s.isBlank(); // true
t.isBlank(); // true
r.isBlank(); // ture
i.isBlank(); // true

注意が必要なんですが、nullの時はnullpointerexceptionになります。(当たり前ですが)
ちなみに、isEmptyはlengthが0の時のみtrueとなりますので用途が違います。

まとめ

意外と便利だし小回りがきくメソッドが多いですよね。一度、JavaDocを見直しておくと、あなたの悩みが解決することがあるかも。
(今後も、便利な使い方を見つけたら徐々にこの記事に掲載していく予定です。)

参考資料

String

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3