1概要


Apache Commons Lang 3

ライブラリは、Java APIのコアクラスの操作をサポートします。このサポートには、文字列、数値、日付、並行性、オブジェクトの反映などを処理するためのメソッドが含まれています。

このチュートリアルでは、ライブラリの概要を説明するだけでなく、

String

インスタンスの操作に使用される

StringUtils

クラスのメソッドも紹介します。


2 Mavenの依存関係

Commons Lang 3ライブラリを使用するには、次の依存関係を使用して中央のMavenリポジトリからそれを引っ張るだけです。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.5</version>
</dependency>

このライブラリの最新版を見つけることができます。 22[ここ]


3

StringUtils



StringUtils

クラスは、文字列に対する

null

-safe操作のためのメソッドを提供します。

このクラスの多くのメソッドには、https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[

java.lang.String

]クラスで定義された対応するものがありますが、これは

null

安全ではありません。ただし、このセクションでは代わりに

String

クラスに同等のものがないいくつかのメソッドに焦点を当てます。


4

containsAny

メソッド


containsAny

メソッドは、指定された

String

に指定された文字セットのいずれかの文字が含まれているかどうかを確認します。この文字セットは、

String

または

char

可変引数の形式で渡すことができます。

次のコードは、このメソッドの2つのオーバーロードフレーバーの使用と結果の検証を示しています。

String string = "baeldung.com";
boolean contained1 = StringUtils.containsAny(string, 'a', 'b', 'c');
boolean contained2 = StringUtils.containsAny(string, 'x', 'y', 'z');
boolean contained3 = StringUtils.containsAny(string, "abc");
boolean contained4 = StringUtils.containsAny(string, "xyz");

assertTrue(contained1);
assertFalse(contained2);
assertTrue(contained3);
assertFalse(contained4);


5

containsIgnoreCase

メソッド


containsIgnoreCase

メソッドは、大文字と小文字を区別しないで、指定された

String

に別の

String

が含まれているかどうかを確認します。

次のコードでは、大文字と小文字を区別しない場合、

String“ baeldung.com”



“ BAELDUNG”

を構成することを確認します。

String string = "baeldung.com";
boolean contained = StringUtils.containsIgnoreCase(string, "BAELDUNG");

assertTrue(contained);


6.

countMatches

メソッド


counterMatches

メソッドは、指定された__Stringに文字またはサブストリングが出現した回数を数えます

以下はこのメソッドのデモンストレーションで、

String


“ welcome to www.baeldung.com”



‘w’

が4回表示され、

“ com”

が2回表示されることを確認します。

String string = "welcome to www.baeldung.com";
int charNum = StringUtils.countMatches(string, 'w');
int stringNum = StringUtils.countMatches(string, "com");

assertEquals(4, charNum);
assertEquals(2, stringNum);


7. 追加および追加方法


appendIfMissing

メソッドと

appendIfMissingIgnoreCase

メソッドは、指定された

String

の末尾に接尾辞が付いていない場合は、それぞれ大文字と小文字を区別して区別します。

同様に、

prependIfMissing

メソッドと

prependIfMissingIgnoreCase

メソッドは、渡されたプレフィックスで始まらない場合は、指定された

String

の先頭にプレフィックスを追加します。

次の例では、

appendIfMissing

メソッドと

prependIfMissing

メソッドを使用して、これらの接尾辞を繰り返さずに

String“ baeldung.com”

に接尾辞と接頭辞を追加します。

String string = "baeldung.com";
String stringWithSuffix = StringUtils.appendIfMissing(string, ".com");
String stringWithPrefix = StringUtils.prependIfMissing(string, "www.");

assertEquals("baeldung.com", stringWithSuffix);
assertEquals("www.baeldung.com", stringWithPrefix);

** 8ケース変更方法


String

クラスは、

String

のすべての文字を大文字または小文字に変換するメソッドを既に定義しています。このサブセクションでは、

SwapCase



capitalize

、および

uncapitalize

など、他の方法で

String

の大文字と小文字を変更するメソッドの使用方法のみを説明します。


swapCase

メソッドは

Stringの大文字と小文字を入れ替え、

を大文字から小文字に、小文字を大文字に変更します。

String originalString = "baeldung.COM";
String swappedString = StringUtils.swapCase(originalString);

assertEquals("BAELDUNG.com", swappedString);


capitalize

メソッドは、指定された

String

の最初の文字を大文字に変換し、残りの文字はすべて変更しません。

String originalString = "baeldung";
String capitalizedString = StringUtils.capitalize(originalString);

assertEquals("Baeldung", capitalizedString);


uncapitalize

メソッドは、指定された

String

の最初の文字を小文字に変換し、残りのすべての文字は変更しません。

String originalString = "Baeldung";
String uncapitalizedString = StringUtils.uncapitalize(originalString);

assertEquals("baeldung", uncapitalizedString);


9反転方法


StringUtils

クラスは、文字列を元に戻すための2つのメソッドを定義します。


reverse



reverseDelimited



reverse

メソッドは

String

のすべての文字を逆の順序で並べ替えますが、

reverseDelimited

メソッドは指定された区切り文字で区切られた文字のグループを並べ替えます。

次のコードは、文字列

“ baeldung”

を反転して結果を検証します。

String originalString = "baeldung";
String reversedString = StringUtils.reverse(originalString);

assertEquals("gnudleab", reversedString);


reverseDelimited

メソッドでは、文字は個別にではなくグループで反転されます。

String originalString = "www.baeldung.com";
String reversedString = StringUtils.reverseDelimited(originalString, '.');

assertEquals("com.baeldung.www", reversedString);


10

rotate()

メソッド


rotate()メソッドは、

String

の文字をいくつかの位置に循環的にシフトします。以下のコードは、

String“ baeldung” __の4つの位置のすべての文字を右に移動し、結果を確認します。

String originalString = "baeldung";
String rotatedString = StringUtils.rotate(originalString, 4);

assertEquals("dungbael", rotatedString);


11

difference

メソッド


difference

メソッドは、2つの文字列を比較し、最初の文字列とは異なる位置から2番目の

Stringの残りを返します。次のコードは、2つの

Stringsを比較しています。

「Baeldungチュートリアル」

および

「Baeldungコース」__の両方向で、結果を検証します。

String tutorials = "Baeldung Tutorials";
String courses = "Baeldung Courses";
String diff1 = StringUtils.difference(tutorials, courses);
String diff2 = StringUtils.difference(courses, tutorials);

assertEquals("Courses", diff1);
assertEquals("Tutorials", diff2);


12. 結論

このチュートリアルでは、Apache Commons Lang 3での文字列処理について紹介し、

StringUtils

ライブラリクラスから使用できる主なAPIについて説明します。

いつものように、上記の例とコードスニペットの実装はhttps://github.com/eugenp/tutorials/tree/master/libraries-apache-commons[GitHubプロジェクト]にあります。