我正在尝试以更有效的方式查找字符串中的元素,而不是将句子转换为char数组,然后将其与其他文本进行比较,如果可以请告诉我你可能还有其他任何方法可以做到这一点,
我需要的是
Boolean b = myString.contains(important%urgent);
这应该不同于:
Boolean b = myString.contains(urgent%important);
在前面的例子中,如果单词包含在字符串中并且它们遵循特定的顺序,我想获得True值。
下一个是?
Boolean b myString.contains(friend?); //this would look for 'friend' and 'friends' or so
和最后一个#
Boolean b myString.equals(#/#/2013 #:#:#);//this would return true if the date is in 2013
我希望我能够解释自己,谢谢你的回答。
答案 0 :(得分:2)
你想要正则表达式!
Boolean b = myString.matches(".*important.*urgent.*");
注意,要严格“单词”(即不匹配“不重要”),请添加单词边界:
Boolean b = myString.matches(".*\\bimportant\\b.*\\burgent\\b.*");
Boolean b = myString.matches(".*friends?.*");
同样,要严格且不匹配“友好”,请添加单词边界:
Boolean b = myString.matches(".*\\bfriends?\\b.*");
Boolean b = myString.matches("\\d+/\\d+/2013 \\d+:\\d+:\\d+");
答案 1 :(得分:0)
请尝试正则表达式。
例如最后一个:
Pattern p3 = Pattern.compile("^\d{2}/\d{2}/2013\s\d:\d:\d$");
Matcher m = p3.matcher(target);
if(m.matches()) {...}