如何检查字符串是否包含包含空格的子字符串?

时间:2012-09-28 16:16:56

标签: java regex

假设我在java中有这样的字符串:

“这是{my string:} ok”

请注意,各个字符之间可以有任意数量的空格。如何检查上面的字符串以查看它是否只包含子字符串:

“{my string:}”

非常感谢!

6 个答案:

答案 0 :(得分:3)

如果您想查看String是否包含另一个特定的字符序列,那么您可以执行以下操作:

String stringToTest = "blah blah blah";

if(stringToTest.contains("blah")){
    return true;
}

你也可以使用比赛。有关匹配字符串的合理解释,我建议您查看正则表达式的Java Oracle教程:

http://docs.oracle.com/javase/tutorial/essential/regex/index.html

干杯,

杰米

答案 1 :(得分:1)

如果您在匹配字符串的每个字符之间有任意数量的空格,我认为您最好在搜索之前删除您尝试匹配的字符串中的所有空格。即:

String searchedString = "this is {my string: } ok";
String stringToMatch = "{my string: }";
boolean foundMatch = searchedString.replaceAll(" ", "").contains(stringToMatch.replaceAll(" ",""));

答案 2 :(得分:0)

将所有内容放入字符串变量中,比如s,然后执行s.contains(“{my string:});如果{my string:}在s中,则返回true。

答案 3 :(得分:0)

为此,您需要使用String#contains(CharSequence)

  

注意,各种之间可以有任意数量的空白区域   字符。

为此,String#trim()方法用于返回字符串的副本,省略前导和尾随空格。

例如:

String myStr = "this is {my string: } ok";
if (myStr.trim().contains("{my string: }")) {
    //Do something.
} 

答案 4 :(得分:0)

最简单的方法是从两个字符串中删除所有空格。

return stringToSearch.replaceAll("\s", "").contains(
  stringToFind.replaceAll("\s", ""));

答案 5 :(得分:0)

寻找正则表达式

\{\s*my\s+string:\s*\}

匹配包含

的任何序列
  1. 左支撑
  2. 零个或多个空格
  3. '我的'
  4. 一个或多个空格
  5. '字符串:'
  6. 零个或多个空格
  7. 右支撑
  8. 这里'space'表示任何空格(制表符,空格,换行符,cr)