91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在JAVA中比較兩個String對象

發布時間:2020-07-23 06:59:06 來源:網絡 閱讀:494 作者:愛碼仕i 欄目:編程語言

問題

最近寫程序的時候,遇到了需要比較兩個 String 對象是否相等的情況,我習慣性的寫了形如if(a == "a"){}的語句,IDEA 跳出警告,內容如下:

String values are compared using '==', not 'equals()'.

也就是說我剛剛那句話應該寫成if(a.equals("a")){}才對,果然不再標紅了。

說明

那么,為什么會這樣呢?==equals()分別是什么效果呢?

對于基本數據類型byte(字節型)、short(短整型)、int(整型)、long(長整型)、float(單精度浮點型)、double(雙精度浮點型)、boolean(布爾型)、char(字符型),==比較的就是他們的值,也不存在equals()方法。

而對于String這樣的引用數據類型,==比較的是兩個對象的 引用地址 即內存地址是否相同,如果內存地址相同,自然就是同一個對象了,同一個對象之間有啥好比的。

我們一般的應用場景主要是要比較兩個 String 對象的內容,那就需要使用 equals() 方法。我們可以看一下 java.lang.String 中 equals() 方法的定義,可以看到 equals() 才是在比較兩個 String 對象的值。

/**
* Compares this string to the specified object.  The result is {@code
* true} if and only if the argument is not {@code null} and is a {@code
* String} object that represents the same sequence of characters as this
* object.
*
* @param  anObject
*         The object to compare this {@code String} against
*
* @return  {@code true} if the given object represents a {@code String}
*          equivalent to this string, {@code false} otherwise
*
* @see  #compareTo(String)
* @see  #equalsIgnoreCase(String)
*/
public Boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = value.length;
        if (n == anotherString.value.length) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n-- != 0) {
                if (v1[i] != v2[i])
                                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}

還有一個特例的情況,比如"abcde" == "abcde"或是"abcde" == "abc" + "de"都是會返回true的,因為雙方都是由編譯器直接實現的,沒有被聲明為變量。

小結

當然,如果你知道自己在做什么,就是要利用 == 的這個特性,自然是沒有問題的。其他時候用 equals() 方法即可。

愛碼仕i:專注于Java開發技術的研究與知識分享!

————END————
如何在JAVA中比較兩個String對象

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲松县| 永春县| 峨眉山市| 洮南市| 扎囊县| 江川县| 象州县| 抚州市| 洞头县| 左云县| 牟定县| 泗水县| 乌拉特前旗| 商南县| 东阳市| 陆河县| 沁水县| 巴东县| 藁城市| 固始县| 博白县| 南通市| 信丰县| 贺州市| 江油市| 息烽县| 华宁县| 商洛市| 乌兰县| 米林县| 安岳县| 雷州市| 中江县| 漳州市| 青铜峡市| 论坛| 宝鸡市| 柘荣县| 永平县| 合肥市| 布拖县|