Java の StringUtils

Mohammad Irfan 2023年10月12日
Java の StringUtils

このチュートリアルでは、StringUtils とは何か、および Java で String を処理する際にそれを利用する方法を紹介します。

StringUtils は、String を処理するために使用されるクラスであり、Java の String クラスよりも多くのユーティリティメソッドを提供します。このクラスは Java パッケージに属していません。代わりに、Apache Commons Library に属しています。

パッケージでこのクラスを使用するには、最初にその JAR ファイルをプロジェクトに含め、Java ソースコードに StringUtils クラスをインポートする必要があります。

Maven プロジェクトで作業している場合は、pom.xml ファイルで以下の依存関係を使用してください。必要な JAR が現在のプロジェクトに追加されます。

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

このクラスは org.apache.commons.lang3 パッケージにあり、このクラスのシグネチャは次のようになります。

StringUtils クラスの構文:

public class StringUtils extends Object

StringUtils クラスのコンストラクター:

StringUtils() // no arg constructor

以下は、StringUtils がサポートするいくつかの一般的な操作です。

手術 説明
IsEmpty/IsBlank 文字列にテキストが含まれているかどうかをチェックします。
トリム/ストリップ 文字列の先頭と末尾の空白を削除します。
等しい/比較 null セーフな方法で 2つの文字列を比較します。
startsWith 文字列がプレフィックスで始まるかどうかを null セーフな方法でチェックします。
endsWith 文字列が null セーフな方法でサフィックスで終わっているかどうかをチェックします。
IndexOf/LastIndexOf/含む null セーフなインデックスのチェックを返します。
IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut 文字列のセットのいずれかのインデックスを検索します。
ContainsOnly/ContainsNone/ContainsAny 文字列にこれらの文字のみ/なし/いずれかが含まれているかどうかをチェックします
分割/参加 文字列を部分文字列の配列に分割し、その逆も同様です。
削除/削除 文字列の一部を削除します。

Java での StringUtils の例

この例では、StringUtils クラスのいくつかの標準メソッドを使用して、クラスが String とどのように連携するかを理解しました。このクラスは、String を操作するためのより多くのユーティリティメソッドを提供することを除いて、Java の String クラスに似ています。

以下の例を参照してください。

import org.apache.commons.lang3.StringUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    // Get abbreviation of string
    String val = StringUtils.abbreviate("Delft", 4);
    System.out.println(val);
    // Capitalize string
    val = StringUtils.capitalize("delft");
    System.out.println(val);
    // Chop string
    val = StringUtils.chop("delft");
    System.out.println(val);
    // Compare two strings
    int a = StringUtils.compare(val, val);
    System.out.println(a);
    // find substring in string
    boolean b = StringUtils.contains("delft", "ft");
    System.out.println(b);
    // Find index of a char in string
    int c = StringUtils.indexOf(val, 'f');
    System.out.println(c);
    // Find last index of a char in string
    int d = StringUtils.lastIndexOf("delftstack", 't');
    System.out.println(d);
    // Lowercase string
    val = StringUtils.lowerCase("DELFSTACK");
    System.out.println(val);
    // Repeat string
    val = StringUtils.repeat("DELF", 2);
    System.out.println(val);
    // Reverse string
    val = StringUtils.reverse("Delft");
    System.out.println(val);
    // Truncate string
    val = StringUtils.truncate("Delft", 2);
    System.out.println(val);
    // Uppercase string
    val = StringUtils.upperCase("Delft");
    System.out.println(val);
  }
}

出力:

D...
Delft
delf
0
true
3
6
delfstack
DELFDELF
tfleD
De
DELFT