查找字符串是否与另一个字符串匹配

时间:2013-05-21 16:33:40

标签: java string string-comparison

我想解析一个字符串,以查看它是否与整个字符串或子字符串匹配。 我试过这个:

String [] array = {"Example","hi","EXAMPLE","example","eXamPLe"};
String word;
...
if ( array[j].toUpperCase().contains(word) ||  array[j].toLowerCase().contains(word)  )
System.out.print(word + " ");

但我的问题是:

当用户输入单词"Example"(区分大小写)并且在我的数组中有"Example"它不会打印它时,它只打印"EXAMPLE""example"因为当我的程序比较两个字符串时,它会将我的array[j]字符串转换为大写或小写字母,因此它不会匹配大写和小写字样的单词,如单词“Example”。

因此,在这种情况下,如果用户输入"Examp",我希望它打印:

Example EXAMPLE example eXamPLe

6 个答案:

答案 0 :(得分:5)

在调用contains()之前,您可以将输入字符串和候选字符转换为大写。

if ( array[j].toUpperCase().contains( word.toUpperCase() ) ) {
    System.out.print(word + " ");
}

答案 1 :(得分:3)

如果您只是在寻找完整匹配项,请使用equalsIgnoreCase

当需要部分匹配时,您可能需要trie或类似的东西。

答案 2 :(得分:1)

word的相同案例相比较。

if ( array[j].toUpperCase().contains(word.toUpperCase()))
{
}

答案 3 :(得分:1)

您正在寻找:

if (array[j].toUpperCase().contains(word.toUpperCase())) {
    System.out.print(array[j]+ " ");
}

这将打印:

Example EXAMPLE example eXamPLe

如你所愿!

答案 4 :(得分:0)

答案 5 :(得分:0)

将此作为您的作业提交。你肯定会脱颖而出。

String word = "Exam";
String [] array = {"Example","hi","EXAMPLE","example","eXamPLe"};

for (String str : array)
  if (str.matches("(?i)"+word+".*"))
    System.out.print(str + " "); // prints: Example EXAMPLE example eXamPLe