首頁 Java Java基礎 java中如何使用if語句判斷字串是否相等

java中如何使用if語句判斷字串是否相等

Nov 27, 2019 am 11:55 AM
if語句 java 判斷 字串

java中如何使用if語句判斷字串是否相等

首先分析使用==(注意:Java中= 是賦值運算符,== 是比較是否相等) 和equals()方法來比較兩個字串相等的差異:

==比較的是兩個字串的位址是否為相等(同一個位址),equals()方法比較的是兩個字串物件的內容是否相同(當然,若兩個字串引用同一個位址,使用equals()比較也回傳true)。

推薦相關學習影片:java影片

下面將舉出兩個例子,分析兩種情況下的字串比較問題:

範例1、使用new關鍵字宣告兩個String類型的變數

java中如何使用if語句判斷字串是否相等

#執行程式發現,用equals比較回傳true,用== 比較傳回false。原因如下:

因為== 比較的是兩個字串物件的位址是否相同(是否為同一個位址),當使用new關鍵字建立一個物件的時候,該物件單獨佔據一塊儲存空間,存放llg這個字串的值。所以s1 s2兩個字串雖然值相同,但是儲存的位址不是一個位址。

當使用==來比較的時候,比較的是兩個字串的位址是否是同一個,所以回傳false。但使用equals()方法比較這兩個字串,將會比較兩個字串的值是否相同,所以回傳true。

範例2、正常情況下的字串宣告並定義

java中如何使用if語句判斷字串是否相等

#程式經過運行,發現兩個方式都回傳true 。那麼這是為什麼呢?原因如下:

一般我們認為,堆疊中存放基本類型的變數和物件的參考變量,而new出來的物件和陣列則存放在堆中。然而除此之外還有一塊區域叫做常量池。像我們通常想String s1 = "abc"; 這樣申明的字串對象,其值就是儲存在常數池中。

當我們建立String s1 = "abc"這樣一個物件之後,"abc"就儲存到了常數池中,當我們建立引用String s2 = "abc" 的時候,Java底層會優先在常數池中尋找是否存在"abc",如果存在則讓s2指向這個值,不會重新建立。所以使用 == 比較時,因為位址相同,所以比較的結果是true。

那麼問題回來了,既然是有常數池,是不是字串如果不是new出來的(一般也不會這麼new,宣告字串變數一般像例2這麼寫),那麼這些字串都是從常數池引用同一個對象,所以用== 比較就行了?答案是可以的。

推薦相關文章教學:java入門學習

#

以上是java中如何使用if語句判斷字串是否相等的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java 中的平方根 Java 中的平方根 Aug 30, 2024 pm 04:26 PM

Java 中的平方根

Java 中的完美數 Java 中的完美數 Aug 30, 2024 pm 04:28 PM

Java 中的完美數

Java 中的隨機數產生器 Java 中的隨機數產生器 Aug 30, 2024 pm 04:27 PM

Java 中的隨機數產生器

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java中的Weka

Java 中的阿姆斯壯數 Java 中的阿姆斯壯數 Aug 30, 2024 pm 04:26 PM

Java 中的阿姆斯壯數

Java 中的史密斯數 Java 中的史密斯數 Aug 30, 2024 pm 04:28 PM

Java 中的史密斯數

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

Java Spring 面試題

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

突破或從Java 8流返回?

See all articles