StringUtils.isBlank(文字列)とStringUtils.isEmpty(STR)との差や違いは何彼らの実装を見て
1.StringUtils.isEmpty(たCharSequence CS)を達成ソース
パブリック 静的 ブールのisEmpty(たCharSequence CS){ 戻り CSの==のヌルを || cs.length()== 0 。 }
発見StringUtils.isEmpty(たCharSequence CS)からのソースがnullまたはCS cs.length()= 0と判定されたが、我々は特殊なエスケープ文字や空白改行文字を決定する必要がある場合、その長さが0より大きい、判断は許容のisEmptyではありません
2.StringUtils.isBlank(たCharSequence CS)を達成ソース
-
パブリック 静的 ブールISBLANK(たCharSequence CS){ int型STRLENと、 もし(!CS = NULL &&(STRLEN = cs.length())!= 0 ){ ため(int型 i = 0; iがSTRLENを<; ++ i)が{ 場合(!Character.isWhitespace(cs.charAt(I) )){ 戻り 偽。 } } 戻り 真。 } 他{ 戻り 真。 } }
求めることができる、マルチ解析方法Character.isWhitespaceすなわち空白、空白よりStringUtils.isBlankのisEmpty方法がある:スペース、タブ・キーを\ n、改行\ tの、キャリッジリターンの\ R、フォームフィード\ F
テストコード:
公共の 静的な 無効メイン(文字列[] args)を{ // スペース、タブ・キー、改行:指定された文字が空白文字、空白であったかどうかを判定するためisWhitespace()メソッド。 System.out.println(Character.isWhitespace( 'C' )); のSystem.out.println(Character.isWhitespace( '' )); のSystem.out.println(Character.isWhitespace( '\ N-' )); システム。 out.printlnを(Character.isWhitespace( '\のT' )); 文字列STR = "C" 、 文字列STR1 = "" ; 文字列STR2 = "" ; 文字列STR3 = "\ N-" 。= "\ tの" ; System.out.println( "空白である:" + StringUtils.isBlank(STR3)); System.out.println( "空です:" + StringUtils.isEmpty(STR3)); }
偽 真 真 真は 空白です:trueが 空である:偽
-
3.結論:
-
文字がStringUtils.isEmptyヌルまたは0の長さかどうかが決定される場合にのみ、StringUtils.isBlank方法濾別空白します