Apple Commons StrigUtils
4993 ワード
apphe commons StrigUtils紹介熱4はもう1529回読みました。2012-05-06 21:27タグ:apphe apphe commons StringUtils紹介
org.apache.com mmons.lang.StringUtils
StringUtilsはapache commons langライブラリです。http://commons.apache.org/lang)傘下のツール類は、文字列を処理するための有用な方法をたくさん提供しています。本文では、すべての方法を紹介するつもりはありません。
現在はStringUtilsの2つのバージョンがありますが、それぞれ比較的新しいorg.apphe.com mmons.lang.3.StrigUtilsと古いorg.apphe.com mmons.lang.StringUtilsとでは大きな違いがあります。前者はJAVA 5が必要です。これは私達が使いたいのです。
1)public static book equals(CharSequence str 1、CharSequence str 2)
まず一番簡単な方法equalsから始まります。あなたが考えているのと同じように、彼は二つの文字列パラメータが必要です。同じ時にtrueに戻ります。そうしないとfalseに戻ります。
しかしjava.lang.Stringはすでに既成の比較的に完璧なequals方法があります。なぜ私達は第三者の実現が必要ですか?
この問題はとてもいいです。次のコードを見てみましょう。何か問題がありますか?
Javaコード
Javaコード
Javaコード
2)isEmpty、isNotEmpty、isBlank、isNotBlank
前述のように、これらの方法は、jdkが提供するisEmpty方法に対して、「空のポインタの安全」、つまり、伝達パラメータの空の値を考慮しなくてもよい、例を見てみましょう。
Javaコード
isBlankは文字列に空白の文字が含まれている場合、trueを返します。例えば、
Javaコード
4)public static String jun(Iterable iterable、String separator)この方法は確かに実用的です。jdk自身は提供していないので、簡単な使い方ができます。
Javaコード
はい、この倉庫は確かに実用的な倉庫であると確信しています。
APIを参照してくださいhttp://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/StringUtils.html
org.apache.com mmons.lang.StringUtils
StringUtilsはapache commons langライブラリです。http://commons.apache.org/lang)傘下のツール類は、文字列を処理するための有用な方法をたくさん提供しています。本文では、すべての方法を紹介するつもりはありません。
現在はStringUtilsの2つのバージョンがありますが、それぞれ比較的新しいorg.apphe.com mmons.lang.3.StrigUtilsと古いorg.apphe.com mmons.lang.StringUtilsとでは大きな違いがあります。前者はJAVA 5が必要です。これは私達が使いたいのです。
1)public static book equals(CharSequence str 1、CharSequence str 2)
まず一番簡単な方法equalsから始まります。あなたが考えているのと同じように、彼は二つの文字列パラメータが必要です。同じ時にtrueに戻ります。そうしないとfalseに戻ります。
しかしjava.lang.Stringはすでに既成の比較的に完璧なequals方法があります。なぜ私達は第三者の実現が必要ですか?
この問題はとてもいいです。次のコードを見てみましょう。何か問題がありますか?
Javaコード
public void doStuffWithString(String stringParam) {
if(stringParam.equals("MyStringValue")) {
// do stuff }
}
ソースコードコピー印刷public void doStuffWithString(String stringParam) {
if(stringParam.equals("MyStringValue")) {
// do stuff }
}
これはNull PointerExceptionが現れるかもしれませんが、いくつかの方法があります。Javaコード
public void safeDoStuffWithString1(String stringParam) {
if(stringParam != null &&
stringParam.equals("MyStringValue")) {
// do stuff
}
}
public void safeDoStuffWithString2(String stringParm) {
if("MyStringValue".equals(stringParam))
{
// do stuff
}
}
ソースコードコピー印刷public void safeDoStuffWithString1(String stringParam) {
if(stringParam != null &&
stringParam.equals("MyStringValue")) {
// do stuff
}
}
public void safeDoStuffWithString2(String stringParm) {
if("MyStringValue".equals(stringParam))
{
// do stuff
}
}
私は上の二つの方法が好きではありません。最初は太って見えます。二つ目は間違いのように見えます。ここでは、いくつかのStringUtilsのクラスを使用することができます。このクラスで提供されたequalsの方法は、空の指針が安全であり、彼に伝達されるパラメータを心配しないでください。Javaコード
public void safeDoStuffWithString3(String stringParam) {
if(StringUtils.equals(stringParam,"MyStringValue))
{
// do stuff
}
}
ソースコードコピー印刷public void safeDoStuffWithString3(String stringParam) {
if(StringUtils.equals(stringParam,"MyStringValue))
{
// do stuff
}
}
これは私の好みですが、これは確かに読みやすいです。前の二つの方法は問題がありませんが、StringUtils.equalsは考慮に値すると思います。2)isEmpty、isNotEmpty、isBlank、isNotBlank
前述のように、これらの方法は、jdkが提供するisEmpty方法に対して、「空のポインタの安全」、つまり、伝達パラメータの空の値を考慮しなくてもよい、例を見てみましょう。
Javaコード
if(myString != null && !myString.isEmpty()) {
// ?
// Do stuff with myString
}
if(StringUtils.isNotEmpty(myString)) { //
// Do stuff with myString
}
ソースコードコピー印刷if(myString != null && !myString.isEmpty()) {
// ?
// Do stuff with myString
}
if(StringUtils.isNotEmpty(myString)) { //
// Do stuff with myString
}
Blankとemptyの違いisBlankは文字列に空白の文字が含まれている場合、trueを返します。例えば、
Javaコード
String someWhiteSpace = " \t
";
StringUtils.isEmpty(someWhiteSpace); // false
StringUtils.isBlank(someWhiteSpace); // true
ソースコードコピー印刷String someWhiteSpace = " \t
";
StringUtils.isEmpty(someWhiteSpace); // false
StringUtils.isBlank(someWhiteSpace); // true
3)public static String[]split(String str,String separators)はもちろん、この方法はString.splitに対しても空のポインタが安全であり、split 1つのnull文字列を試した場合、Nullに戻ります。一つのNullの区切り記号は空白文字列で区切られますが、もう一つの理由があります。jdkが持参したString.splitは正規表現をサポートして分離するため、思わぬ結果をもたらす可能性があります。例えば、Javaコードです。public void possiblyNotWhatYouWant() {
String contrivedExampleString = "one.two.three.four";
String[] result = contrivedExampleString.split(".");
System.out.println(result.length); // 0
}
ソースコードコピー印刷public void possiblyNotWhatYouWant() {
String contrivedExampleString = "one.two.three.four";
String[] result = contrivedExampleString.split(".");
System.out.println(result.length); // 0
}
上では明らかに.区切りを希望していますが、jdkは正規表現の任意の文字です。文字列内の任意の文字が一致し、size=0の文字列配列を返します。実はあなたは「伝える」だけでいいですが、これは確かに問題です。このように、StringUtils.splitを使うと簡単になります。また、StringUtils.splitはjdkの持っているsplitより4倍速いことも分かりました。4)public static String jun(Iterable iterable、String separator)この方法は確かに実用的です。jdk自身は提供していないので、簡単な使い方ができます。
Javaコード
String[] numbers = {"one", "two", "three"};
StringUtils.join(numbers,","); // returns "one,two,three"
ソースコードコピー印刷String[] numbers = {"one", "two", "three"};
StringUtils.join(numbers,","); // returns "one,two,three"
もちろん、あなたは数字または反復シーケンスを送ることができます。はい、この倉庫は確かに実用的な倉庫であると確信しています。
APIを参照してくださいhttp://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/StringUtils.html