-4

我正在寻找一段可以在字符串中搜索字符串的代码。

String mainSTR = "It is Wednesday";

所以我需要一个代码,如果我搜索将返回 true

"Day""day""DAY" 在 中mainSTR

我尝试了类似的方法

mainSTR.contains("")

mainSTR.IndexOf("") > -1

不适合我

谢谢 :)

4

7 回答 7

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");
于 2013-07-23T19:00:46.743 回答
0

您可以在这里使用的是一种方法 - 规范化功能。toLowerCase(或 toUpperCase)就是这样的助手之一。

mainSTR.toLowerCase().contains("day");
于 2013-07-23T18:51:55.270 回答
0
mainSTR.toUpperCase().contains("day".toUpperCase());
于 2013-07-23T18:52:44.017 回答
0
String days = "day";//or "Day" or "DAY"
mainSTR.toLowerCase().contains(days.toLowerCase());

Ps:对于这样的比较,你应该更喜欢toLowerCase(Locale.ENGLISH)或者toUpperCase(Locale.ENGLISH)哪个给你区域设置不敏感的字符串。

这就是 javaDoc 不得不说的

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

于 2013-07-23T18:53:34.807 回答
0

请尝试以下操作:

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

干杯!!

于 2013-07-23T18:55:08.347 回答
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如果您这样做,可能不包含正则表达式元字符。

于 2013-07-23T18:56:48.903 回答
0

看一下这个

   String mainStr="It is Wednesday";
   System.out.println(mainStr.toLowerCase().contains("wed".toLowerCase()));
于 2013-07-23T19:02:05.670 回答