StringUtilsには使えるメソッドが一杯あったので使って便利と思ったものを整理しました。
#StringUtilsとは
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
String型の文字列編集で色々と便利な操作をまとめたメソッドです。
Stringのメソッドとは違いヌルポが起きないように考慮してくれています。
nullチェックいらずになります。
StringUtilと似てるから注意
##isEmptyとisNotEmpty
isEmptyはStringでもあるけどこっちのはnullを許容、falseを返してくれる。
isNotEmptyはisEmptyの逆。
String a = "1234";
String b = "";
String c = null;
try {
System.out.println(StringUtils.isEmpty(a));
System.out.println(StringUtils.isNotEmpty(a));
System.out.println(a.isEmpty());
System.out.println(StringUtils.isEmpty(b));
System.out.println(StringUtils.isNotEmpty(b));
System.out.println(b.isEmpty());
System.out.println(StringUtils.isEmpty(c));
System.out.println(StringUtils.isNotEmpty(c));
System.out.println(c.isEmpty());
}catch (Exception e) {
System.out.println("ぬるぽ");
}
false
true
false
true
false
true
true
false
ぬるぽ
##isBlankとisNotBlank
Stringには無い空白とnullを確かめてくれるメソッド。
変数の中の全てが空白でないと空白判定はされない。
String a = "1234";
String b = "12 4";
String c = " ";
String d = " ";
String e = "";
String f = null;
System.out.println(StringUtils.isBlank(a));
System.out.println(StringUtils.isNotBlank(a));
System.out.println(StringUtils.isBlank(b));
System.out.println(StringUtils.isNotBlank(b));
System.out.println(StringUtils.isBlank(c));
System.out.println(StringUtils.isNotBlank(c));
System.out.println(StringUtils.isBlank(d));
System.out.println(StringUtils.isNotBlank(d));
System.out.println(StringUtils.isBlank(e));
System.out.println(StringUtils.isNotBlank(e));
System.out.println(StringUtils.isBlank(f));
System.out.println(StringUtils.isNotBlank(f));
false
true
false
true
true
false
true
false
true
false
true
false
##isAllLowerCase
小文字のみであるかを確認する。
空白、空文字、nullはfalse
String a = "a";
String b = "A";
String c = "Aa";
String d = "あ";
String e = "1";
String f = " ";
String h = null;
System.out.println(StringUtils.isAllLowerCase(a));
System.out.println(StringUtils.isAllLowerCase(b));
System.out.println(StringUtils.isAllLowerCase(c));
System.out.println(StringUtils.isAllLowerCase(d));
System.out.println(StringUtils.isAllLowerCase(e));
System.out.println(StringUtils.isAllLowerCase(f));
System.out.println(StringUtils.isAllLowerCase(h));
true
false
false
false
false
false
false
##isAllUpperCase
大文字のみであるか確認する。
空白、空文字、nullはfalse
String a = "a";
String b = "A";
String c = "Aa";
String d = "あ";
String e = "1";
String f = " ";
String h = null;
System.out.println(StringUtils.isAllUpperCase(a));
System.out.println(StringUtils.isAllUpperCase(b));
System.out.println(StringUtils.isAllUpperCase(c));
System.out.println(StringUtils.isAllUpperCase(d));
System.out.println(StringUtils.isAllUpperCase(e));
System.out.println(StringUtils.isAllUpperCase(f));
System.out.println(StringUtils.isAllUpperCase(h));
false
true
false
false
false
false
false
##isAlphaとisAlphaSpace
isAlphaは文字であるか否かを確認する。数字、空白、空文字、nullはfalse
isAlphaSpaceはisAlphaの空白許容版
String a = "a";
String b = "A";
String c = "1";
String d = "1aB";
String e = "あ";
String f = " ";
String h = null;
System.out.println(StringUtils.isAlpha(a));
System.out.println(StringUtils.isAlpha(b));
System.out.println(StringUtils.isAlpha(c));
System.out.println(StringUtils.isAlpha(d));
System.out.println(StringUtils.isAlpha(e));
System.out.println(StringUtils.isAlpha(f));
System.out.println(StringUtils.isAlpha(h));
true
true
false
false
true
false
false
##isNumericとisNumericSpace
isNumericは数字かどうか確認を行う。数字、空白、空文字、nullはfalse
isNumericSpaceはisNumericの空白許容版
String a = "a";
String b = "A";
String c = "1";
String d = "1aB";
String e = "あ";
String f = " ";
String h = null;
System.out.println(StringUtils.isNumeric(a));
System.out.println(StringUtils.isNumeric(b));
System.out.println(StringUtils.isNumeric(c));
System.out.println(StringUtils.isNumeric(d));
System.out.println(StringUtils.isNumeric(e));
System.out.println(StringUtils.isNumeric(f));
System.out.println(StringUtils.isNumeric(h));
false
false
true
false
false
false
false
##isAlphanumericとisAlphanumericSpace
isAlphanumeric = isAlpha + isNumeric
isAlphanumericSpace = isAlphaSpace + isNumericSpace
String a = "a";
String b = "A";
String c = "1";
String d = "1aB";
String e = "あ";
String f = " ";
String h = null;
System.out.println(StringUtils.isAlphanumeric(a));
System.out.println(StringUtils.isAlphanumericSpace(a));
System.out.println(StringUtils.isAlphanumeric(b));
System.out.println(StringUtils.isAlphanumericSpace(b));
System.out.println(StringUtils.isAlphanumeric(c));
System.out.println(StringUtils.isAlphanumericSpace(c));
System.out.println(StringUtils.isAlphanumeric(d));
System.out.println(StringUtils.isAlphanumericSpace(d));
System.out.println(StringUtils.isAlphanumeric(e));
System.out.println(StringUtils.isAlphanumericSpace(e));
System.out.println(StringUtils.isAlphanumeric(f));
System.out.println(StringUtils.isAlphanumericSpace(f));
System.out.println(StringUtils.isAlphanumeric(h));
System.out.println(StringUtils.isAlphanumericSpace(h));
true
true
true
true
true
true
true
true
true
true
false
true
false
false
##containsとcontainsNone
第1引数の中に第2引数が含まれているか確認する。null許容。
containsNoneはcontainsの反対
String tar = "abcdef";
String a = "a";
String b = "B";
String c = "abc";
String d = "abC";
String e = "";
String f = null;
try {
System.out.println(StringUtils.contains(tar, a));
System.out.println(StringUtils.containsNone(tar, a));
System.out.println(tar.contains(a));
System.out.println(StringUtils.contains(tar, b));
System.out.println(StringUtils.containsNone(tar, b));
System.out.println(tar.contains(b));
System.out.println(StringUtils.contains(tar, c));
System.out.println(StringUtils.containsNone(tar, c));
System.out.println(tar.contains(c));
System.out.println(StringUtils.contains(tar, d));
System.out.println(StringUtils.containsNone(tar, d));
System.out.println(tar.contains(d));
System.out.println(StringUtils.contains(tar, e));
System.out.println(StringUtils.containsNone(tar, e));
System.out.println(tar.contains(e));
System.out.println(StringUtils.contains(tar, f));
System.out.println(StringUtils.containsNone(tar, f));
System.out.println(tar.contains(f));
} catch (Exception ex) {
System.out.println("ぬるぽ");
}
true
false
true
false
true
false
true
false
true
false
false
false
true
true
true
false
true
ぬるぽ
##equals
Stringのequalsメソッドのnullチェック版です。
どちらがnullでも使える。ただしどっちもnullでもfalseになる。
String a = "a";
String b = "abc";
String c = " ";
String d = "";
String e = null;
try {
System.out.println(StringUtils.equals(a, a));
System.out.println(a.equals(a));
System.out.println(StringUtils.equals(a, b));
System.out.println(a.equals(b));
System.out.println(StringUtils.equals(a, c));
System.out.println(a.equals(c));
System.out.println(StringUtils.equals(a, d));
System.out.println(a.equals(d));
System.out.println(StringUtils.equals(a, e));
System.out.println(a.equals(e));
System.out.println(StringUtils.equals(c, c));
System.out.println(c.equals(c));
System.out.println(StringUtils.equals(c, d));
System.out.println(c.equals(d));
System.out.println(StringUtils.equals(d, d));
System.out.println(d.equals(d));
System.out.println(StringUtils.equals(d, e));
System.out.println(e.equals(e));
System.out.println(StringUtils.equals(e, e));
System.out.println(StringUtils.equals(e, a));
System.out.println(e.equals(e));
} catch (Exception ex) {
System.out.println("ぬるぽ");
}
true
true
false
false
false
false
false
false
false
false
true
true
false
false
true
true
false
ぬるぽ
##join
文字列のリストを,(カンマ)区切りでならべて一つの文字列にしてくれる。
Stringオブジェクトのjoinはリストオブジェクトがnullの場合ヌルポで落ちてしまう。
List<String> strList = new ArrayList<>();
List<String> nullList = null;
try {
for (int i = 0; i < 10; i++) {
strList.add(Integer.toString(i));
}
strList.add(" ");
strList.add("");
strList.add(null);
System.out.println(StringUtils.join(strList));
System.out.println(StringUtils.join(nullList));
System.out.println(String.join(",", nullList));
} catch (Exception e) {
System.out.println("ぬるぽ");
}
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, , , null]
ぬるぽ
##leftPad、rightPad
文字列の左、右側を指定の文字数になるように空白で埋めてくれる。
空白梅ではなく埋める文字を指定する事もできる。
String a = "a";
System.out.println(StringUtils.leftPad(a, 5));
System.out.println(StringUtils.leftPad(a, 5, "0"));
System.out.println(StringUtils.rightPad(a, 5));
System.out.println(StringUtils.rightPad(a, 5, "0"));
a
0000a
a
a0000
##repeat
指定文字列を指定数繰り返した文字列を作成してくれる。
なおnullの場合は繰り返さない。
String a = "abc";
String b = " ";
String c = "";
String d = null;
System.out.println(StringUtils.repeat(a, 5));
System.out.println(StringUtils.repeat(b, 5));
System.out.println(StringUtils.repeat(c, 5));
System.out.println(StringUtils.repeat(d, 5));
abcabcabcabcabc
null
##swapCase
大文字を小文字に、小文字を大文字に自動変換!
String a = "abcdefgh";
String b = "ABCDEFGH";
String c = "aBcDeFgH";
System.out.println(StringUtils.swapCase(a));
System.out.println(StringUtils.swapCase(b));
System.out.println(StringUtils.swapCase(c));
ABCDEFGH
abcdefgh
AbCdEfGh
##defaultString
対象文字列がnullの場合に空文字に変更してくれます。
nullを表示したくないときに便利。
String a = "abc";
String b = " ";
String c = "";
String d = null;
System.out.println(StringUtils.defaultString(a));
System.out.println(StringUtils.defaultString(b));
System.out.println(StringUtils.defaultString(c));
System.out.println(StringUtils.defaultString(d));
abc