民间,
我对Java中的String比较(中间有空格)有些怀疑。
用例:-
考虑以下Solr查询字符串:
String query = ".....&ansDt:[* TO *]....";
ansDt的有效格式为:-
ansDt : [* TO *]
ansDt : [someDate TO *]
ansDt : [* TO someDate]
ansDt : [someDate TO otherDate]
我有两个疑问:
现在,我需要一种方法来仅检查查询字符串的
4th ansDt
格式。如果遇到其他格式(简而言之,如果在*
字段中遇到任何ansDt
模式),则需要在控制台上抛出一些消息。我还需要检查第一种,第二种和第三种情况,而与
ansDt
&:
&[
之间的空格无关。即ansDt: [* TO *]
,ansDt :[* TO *]
,ansDt : [ * TO *]
等均被视为相同我不能使用
String.trim( )
,因为它将仅删除字符串的开头和结尾空格如何使用Java字符串比较进行检查?
谢谢
最佳答案
请尝试此正则表达式:
String query = ".....&ansDt:[* TO *]....";
String pattern = ".*ansDt[\\ ]*[:][\\ ]*[\\[].*[\\ ]+TO[\\ ]+.*[\\]].*";
boolean test = query.matches(pattern);
附加信息:
. matches any character
.* matches any amount of characters
[\ ] matches space
[\ ]+ matches one or more spaces, used between "TO"
[\ ]* matches any amount of spaces, used between ":"
[\[] and [\]] matches "[" and "]"
关于java - Java中的字符串比较,不带空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12384969/