2012-08-16 663 views
-1

我在做一些Java中的編碼,我很好奇,什麼時候使用StringUtils.containsIgnoreCase與equalsIgnoreCase?什麼時候比較合適?實際上最大的區別是什麼?感謝球員......任何幫助,非常感謝。 :)在java中,當使用StringUtils.containsIgnoreCase與equalsIgnoreCase?

+5

你知道什麼是包含的手段?你知道同等的含義嗎?那麼你應該能夠自己回答這個問題,而不需要使用方法名稱。 – Falmarri 2012-08-16 20:56:27

+2

這個問題是基本相同的問:「什麼時候比較適合使用'> =''以上>'?什麼是真正的大的差別?」 – 2012-08-16 21:00:17

回答

6

如果你讀了specs,你看到 StringUtils.containsIgnoreCase()檢查一個字符串包含另一個字符串,而StringUtils.equalsIgnoreCase()檢查,如果兩個字符串相等。

+2

使用StringUtils.containsIgnoreCase如果兩個字符串相等,仍然會返回true。但是,它會更加低效,因爲它將使用字符串匹配算法,而不是簡單比較每個字符。 – Sednus 2012-08-16 20:50:42

+6

鑑於方法的不言而喻的名稱,你甚至不需要檢查他們的規格:) – 2012-08-16 20:52:42

2

如果您有以下字符串:

String a = "ABCdefGHIjkl"; 
String b = "ABCDEFGHIJKL"; 
String c = "ABCd"; 

然後a包含c,但不等於ca包含b等於b。 (在這裏,我說「等於」,我的意思是「equalsIgnoreCase」;同爲含)

你會使用一種或另一種取決於你是否願意部分匹配被接受。

0
StringUtils.containsIgnoreCase 

來自Apache Commons。 它檢查字符串是否包含搜索字符串。

StringUtils.contains(null, *) = false 
StringUtils.contains(*, null) = false 
StringUtils.contains("", "") = true 
StringUtils.contains("abc", "") = true 
StringUtils.contains("abc", "a") = true 
StringUtils.contains("abc", "z") = false 
StringUtils.contains("abc", "A") = true 
StringUtils.contains("abc", "Z") = false 

兩種方法API文檔:equalsIgnoreCasecontainsIgnoreCase

0

StringUtils.containsIgnoreCase:檢查一個特定的字符串是否包含另一個字符串。

例如:

StringUtils.contains(null, *) = false 
StringUtils.contains("abc", "") = true 

equalsIgnoreCase:檢查是否兩個字符串是相同的。

例如:

"Test".equalsIgnoreCase("Test") = true 
"Test".equalsIgnoreCase("T") = false