我正在尝试以一种更有效的方式来查找字符串中的元素,而不是将句子转换为字符数组,然后将其与其他文本片段进行比较,如果可以的话请告诉我您可能知道还有其他方法可以做到这一点,
我需要的是
boolean 值 b = myString.contains(important%urgent);
这应该不同于:
boolean 值 b = myString.contains(urgent%important);
在前面的情况下,如果单词包含在字符串中并且它们遵循特定的顺序,我希望获得 True 值。
下一个是?
boolean 值 b myString.contains(friend?);//这将查找“ friend ”和“ friend ”左右
最后一个#
Boolean b myString.equals(#/#/2013 #:#:#);//如果日期是 2013 年,则返回 true
我希望我能够解释自己,谢谢您的回答。
最佳答案
你想要正则表达式!
要检查词序:
Boolean b = myString.matches(".*important.*urgent.*");
注意,要严格对待“单词”(即不匹配“不重要”),请添加单词边界:
Boolean b = myString.matches(".*\\bimportant\\b.*\\burgent\\b.*");
要检查单词末尾的可选“s”:
Boolean b = myString.matches(".*friends?.*");
再次强调,要严格,不要匹配“友好”,请添加单词边界:
Boolean b = myString.matches(".*\\bfriends?\\b.*");
检查数字:
Boolean b = myString.matches("\\d+/\\d+/2013 \\d+:\\d+:\\d+");
关于java - 在java中使用 "%"、 "?"和 "#"查找子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20589764/