簡體   English   中英

java字符串匹配問題

[英]java string matching problem

我面臨一個非常基本的問題。 有些時候小事情可能需要你一整天:(但感謝stackoverflow memebers總是試圖幫助:)

我試圖匹配2個字符串,如果匹配它應該返回TRUE

現在我正在使用它

if (var1.indexOf(var2) >= 0) {
return true;
}

但是如果var1的值為“maintain”且var2的值為“inta”或“ain”等,它仍會返回true :(。在java中是否有任何方法可以進行全文匹配而不是部分?例如

if("mango"=="mango"){
return true;
}

謝謝 !

為什么不使用內置的String equals()方法?

return var1.equals(var2);
if( "mango".equals("mango") ) { 
   return true;
}

除非你真的知道自己在做什么,否則小心不要在Java中使用==進行字符串比較。

java.util.String上使用equalsequalsIgnoreCase來匹配字符串。 您還需要檢查要比較的對象的null ,我通常更喜歡使用commons StringUtils來實現這些目的。 它具有很好的常用字符串操作功能。

這是一個示例,說明為什么==不是你想要的:

String s1 = new String("something");
String s2 = new String("something");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));

實際上,雖然s1s2包含相同的字符序列,但它們並不是指內存中的相同位置。 因此,這打印falsetrue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM