【发布时间】:2015-08-20 22:20:40
【问题描述】:
假设我在 java 中有这样的字符串:
“这是{我的字符串:}好的”
注意,各个字符之间可以有任意数量的空格。如何检查上面的字符串以查看它是否只包含子字符串:
"{我的字符串:}"
非常感谢!
【问题讨论】:
-
空格是红鲱鱼 - 它们被视为与任何其他字符一样,对任何正常的子字符串搜索功能没有影响
假设我在 java 中有这样的字符串:
“这是{我的字符串:}好的”
注意,各个字符之间可以有任意数量的空格。如何检查上面的字符串以查看它是否只包含子字符串:
"{我的字符串:}"
非常感谢!
【问题讨论】:
如果您要查看字符串是否包含另一个特定的字符序列,那么您可以执行以下操作:
String stringToTest = "blah blah blah";
if(stringToTest.contains("blah")){
return true;
}
您也可以使用火柴。有关匹配字符串的体面解释,我建议您查看 Java Oracle 正则表达式教程:
http://docs.oracle.com/javase/tutorial/essential/regex/index.html
干杯,
杰米
【讨论】:
如果您的匹配字符串的每个字符之间有任意数量的空格,我认为您最好在搜索之前从您尝试匹配的字符串中删除所有空格。 IE。 :
String searchedString = "this is {my string: } ok";
String stringToMatch = "{my string: }";
boolean foundMatch = searchedString.replaceAll(" ", "").contains(stringToMatch.replaceAll(" ",""));
【讨论】:
把它全部放到一个字符串变量中,比如说 s,然后做 s.contains("{my string: }); 如果 {my string: } 在 s 中,这将返回 true。
【讨论】:
为此,您需要使用String#contains(CharSequence)。
注意,在不同的字符之间可以有任意数量的空格 字符。
为此,String#trim() 方法用于返回字符串的副本,省略了前导和尾随空格。
例如:
String myStr = "this is {my string: } ok";
if (myStr.trim().contains("{my string: }")) {
//Do something.
}
【讨论】:
最简单的做法是去掉两个字符串中的所有空格。
return stringToSearch.replaceAll("\s", "").contains(
stringToFind.replaceAll("\s", ""));
【讨论】:
寻找正则表达式
\{\s*my\s+string:\s*\}
这匹配任何包含
的序列这里的“空格”表示任何空格(制表符、空格、换行符、cr)
【讨论】: