Javaは文字が空かどうかを判断します

angryTom
リリース: 2019-11-11 14:45:36
オリジナル
4580 人が閲覧しました

Javaは文字が空かどうかを判断します

#java は文字が空かどうかを判断します

以下に、文字が空かどうかを判断する 4 つの方法をまとめます。 Javaメソッドでは空です。お役に立てば幸いです。

方法 1. 最も一般的な方法。直感的で便利ですが、非常に非効率です。

if(s == null || s.equals(""));
ログイン後にコピー

方法 2. 文字列の長さを比較します。効率的です。高いです。私が知っている最良の方法:

if(s == null || s.length() == 0);
ログイン後にコピー

方法 3 は、Java SE 6.0 で提供され始めた方法で、方法 2 とほぼ同じくらい効率的ですが、互換性の理由から、これをお勧めします。方法 2 を使用します。

if(s == null || s.isEmpty());
ログイン後にコピー

方法 4。これは比較的直感的でシンプルな方法であり、効率も非常に高いです。方法 2 および 3 とほぼ同じくらい効率的です:

if (s == null || s == "");
ログイン後にコピー

注: s == null が必要です。

(推奨チュートリアル: java チュートリアル)

String 型が null の場合、equals(String) や length() などの操作は java.lang.NullPointerException をスローします。

また、s==null の順序が前に現れる必要があります。それ以外の場合は、java.lang.NullPointerException.

次の Java コード:

String str = null;
f(str.equals("") || str == null){//会抛出异常
    System.out.println("success");
}
ログイン後にコピー

補足:

1 もスローされます。空の文字列null

1. Type

null は文字列ではなくオブジェクトの値を表します。たとえば、オブジェクトへの参照を宣言する場合、 String a = null;

"" は空の文字列を表し、長さが 0 であることを意味します。たとえば、文字列 String str = "" ;

2. メモリ割り当て

String str = null ; を宣言すると、文字列オブジェクトへの参照を宣言しますが、ポインタは null になります。つまり、これはまだメモリ空間を指していません;

String str = ""; は、値が "" 空の文字列である文字列型の参照を宣言することを意味します。この str 参照はメモリ空間を指しています。空の文字列のスペース;

Java では、変数と参照変数はスタック (スタック) に格納され、オブジェクト (new によって生成された) はヒープ (ヒープ) に格納されます。

String str = new String("abc") ;
ログイン後にコピー

ps: =左側のものはスタック(stack)に格納され、=右側のものはヒープ(heap)に格納されます。

3. サンプル プログラム:

public class String_Demo01 {
    public static void main(String[] args) {        
        String str1 = new String() ;
        String str2 = null ;
        String str3 = "" ;
        System.out.println(str1==str2);                //内存地址的比较,返回false
        System.out.println(str1.equals(str2));         //值的比较,返回false
        System.out.println(str2==str3);                //内存地址的比较,返回false
        System.out.println(str3.equals(str2));         //值的比较,返回false
        System.out.println(str1==str3);                //内存地址的比较,返回false
        System.out.println(str1.equals(str3));         //值的比较,返回true
    }
}
ログイン後にコピー

上記のプログラムにより、次の結論が得られます:

文字列オブジェクトと null の値は等しくなく、メモリ アドレスも等しくありません。;

空の文字列オブジェクトの値は null と等しくなく、メモリ アドレスも等しくありません;

new String() は文字列オブジェクトを作成しますデフォルト値は「」(文字列型メンバ 変数の初期値はnull)

以上がJavaは文字が空かどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート