查找一个字符串是不是与另一个字符串匹配
Posted
技术标签:
【中文标题】查找一个字符串是不是与另一个字符串匹配【英文标题】:Find whether a string matches another string查找一个字符串是否与另一个字符串匹配 【发布时间】:2013-05-16 12:26:03 【问题描述】:我想解析一个字符串,看看它是匹配整个字符串还是子字符串。 我试过这个:
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
【问题讨论】:
用于...大学运动或其他什么的程序,或者这是一个现实世界的应用程序? 我的真实世界应用程序 定义它是如何成为现实世界的应用程序的。或者至少发布这只是真实代码的抽象只是为了让我们知道问题。 【参考方案1】:如果您只是在寻找完整的匹配项,请使用equalsIgnoreCase
。
当需要部分匹配时,您可能需要trie 或类似的东西。
【讨论】:
当输入为"Examp"
时检查最后一种情况。顺便说一句,不需要太复杂。来自 Apache Commons 的 StringUtils 已经处理了这个问题。
@LuiggiMendoza 谢谢,在算法标签中活得太久,对我来说是下意识的反应。
在这种情况下使用尝试就像使用断头台剪头发:)【参考方案2】:
您可以在调用 contains() 之前将输入字符串和候选字符串都转换为大写。
if ( array[j].toUpperCase().contains( word.toUpperCase() ) )
System.out.print(word + " ");
【讨论】:
【参考方案3】:比较word
的相同情况。
if ( array[j].toUpperCase().contains(word.toUpperCase()))
【讨论】:
【参考方案4】:好吧,我认为使用 .equalsIgnoreCase 的其他人可能也对 Matcher(Java 正则表达式)感兴趣。链接不言自明:http://www.vogella.com/articles/JavaRegularExpressions/article.html http://docs.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html Pattern/Matcher group() to obtain substring in Java? String contains - ignore case
【讨论】:
【参考方案5】:你正在寻找这个:
if (array[j].toUpperCase().contains(word.toUpperCase()))
System.out.print(array[j]+ " ");
这将打印:
Example EXAMPLE example eXamPLe
如你所愿!
【讨论】:
【参考方案6】:将此作为您的作业提交。你肯定会脱颖而出。
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
【讨论】:
以上是关于查找一个字符串是不是与另一个字符串匹配的主要内容,如果未能解决你的问题,请参考以下文章
Bash - 获取命令(字符串)的值并查看它是不是与另一个字符串匹配
当没有匹配的记录时,如何将与另一个表连接的 group_concat 列更改为空字符串而不是 null?
Access 2010 SQL 查询仅在全字字符串中查找部分匹配