2013-07-23 167 views
-4

我在寻找一段可以搜索字符串中的字符串的代码。检查字符串中是否存在字符串java

String mainSTR = "It is Wednesday"; 

所以我需要一个代码,如果我在搜索mainSTR

"Day""day""DAY"将返回true。

我试着像

mainSTR.contains("") 

mainSTR.IndexOf("") > -1 

是不是为我工作

谢谢:)

+3

您要检查'Day',那么你为什么要通过空字符串在'contains' ? –

+0

你只在寻找“日”,“日”和“日”,或者像“日”和“达伊”这样的东西可以接受吗? – bengoesboom

+0

@bengoesboom ...是的 –

回答

0

如果mainSTR是一个很长的字符串,这种方式可能更有效:

String mainSTR = "It is Wednesday"; 
String toSearch = "Day"; 
boolean found = Pattern.compile(toSearch, Pattern.CASE_INSENSITIVE).matcher(mainSTR).find(); 

最后一行相当于

boolean found = Pattern.compile("(?i)" + toSearch).matcher(mainSTR).find(); 

但要注意的是toSearch可能不包含正则表达式元字符,如果你这样做。

+0

if mainSTR =“+91111111189”; toSearch =“89” 它会在这种情况下仍然工作,因为我刚刚得到一个错误,当我使用此代码。 –

+0

@loveeSindh:它可以毫无问题地工作(甚至可以测试它)。你得到了什么样的错误? – jlordo

+0

但你警告我要去搜索。所以即使mainSTR不能包含正则表达式元字符。所以有什么办法可以忽略它呢? –

0

什么,你可以在这里使用是一个单向的方法 - canonicalising功能。 toLowerCase(或toUpperCase)就是这样一个帮手。

mainSTR.toLowerCase().contains("day"); 
0
mainSTR.toUpperCase().contains("day".toUpperCase()); 
0
String days = "day";//or "Day" or "DAY" 
mainSTR.toLowerCase().contains(days.toLowerCase()); 

PS:对于这样的比较,你应该更喜欢toLowerCase(Locale.ENGLISH)toUpperCase(Locale.ENGLISH),给你语言环境敏感字符串。

here是javaDoc不得不说的。

注意:此方法是语言环境敏感的,可能产生,如果用于该旨在被独立地解释区域设置 串意想不到 结果。示例是编程语言标识符,协议 键和HTML标签。例如,土耳其语 语言环境中的“TITLE”.toLowerCase()返回“t?tle”,其中'?'是拉丁小写字母D字符。要获得区域设置不敏感字符串的正确结果,请使用toLowerCase(Locale.ENGLISH)。

+0

+1! –

+0

JavaDoc说'toLowerCase()'使用默认的语言环境,与'toUpperCase()'一样。你能提供你所说的内容吗? – jlordo

+0

@jlordo http://javapapers.com/core-java/javas-tolowercase-has-got-a-surprise-for-you/ – Ankit

0

请尝试以下操作:

mainSTR.toUpperCase().contains(day.toUpperCase());

干杯!

2

嗯,人们不能期待这样的问题和Android开发人员。总之,对于字符串找到任何单词,你可以使用Java方法

String mainSTR = "It is Wednesday"; 
String findThis = "DaY"; 

if(mainSTR.toLowerCase().contains(findThis.toLowerCase())) 
{ 
    System.out.println("true: Day found"); 
} 
else 
    System.out.println("false: Day not found"); 
+0

我同意但包含不起作用。我尝试了很多次,它不工作,这就是为什么我问这个反正谢谢,但它没有帮助.. –

+0

你能显示此代码snipet将无法正常工作的实际代码? –

0

检查了这一点

String mainStr="It is Wednesday"; 
    System.out.println(mainStr.toLowerCase().contains("wed".toLowerCase())); 
相关问题