Java 查找一个字符串是否与另一个字符串匹配
我想解析一个字符串,以查看它是否匹配整个字符串或子字符串。 我试过这个:Java 查找一个字符串是否与另一个字符串匹配,java,string,string-comparison,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 + " "); 但我的问题是: 当用户
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”
,这是因为当我的程序比较两个字符串时,它会转换我的数组[j]
将字符串转换为大写或小写,这样它就不会匹配大写和小写的单词,比如“Example”
因此,在这种情况下,如果用户输入“Examp”
,我希望它打印:
Example EXAMPLE example eXamPLe
如果您只是寻找完全匹配,请使用
当需要部分匹配时,您可能需要a或类似的内容。在调用contains()之前,您可以将输入字符串和候选字符串都转换为大写
与
word
的相同情况进行比较
if ( array[j].toUpperCase().contains(word.toUpperCase()))
{
}
嗯,我认为使用.equalsIgnoreCase的其他人也可能对Matcher(Java正则表达式)感兴趣。这些链接是自我解释的:
您正在寻找:
if (array[j].toUpperCase().contains(word.toUpperCase())) {
System.out.print(array[j]+ " ");
}
这将打印:
Example EXAMPLE example eXamPLe
如你所愿 将此作为您的作业提交。你肯定会被认为是独一无二的
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
当输入为“Examp”时,检查最后一种情况。顺便说一下,没必要把这件事搞得太复杂。Apache Commons的StringUtils已经解决了这个问题。@LuiggiMendoza谢谢,在算法标签中活得太久了,这对我来说是下意识的反应。在这种情况下使用尝试就像用断头台剪头发:)程序用于。。。大学练习之类的,或者这是一个真实世界的应用程序?meDefine的真实世界应用程序如何是一个真实世界的应用程序。或者至少在文章中说,这只是真实代码的抽象,只是为了让我们知道问题所在。
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