3

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

“这是{我的字符串:}好的”

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

“{我的字符串:}”

非常感谢!

4

6 回答 6

3

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

String stringToTest = "blah blah blah";

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

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

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

干杯,

杰米

于 2012-09-28T16:21:53.160 回答
1

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

String searchedString = "this is {my string: } ok";
String stringToMatch = "{my string: }";
boolean foundMatch = searchedString.replaceAll(" ", "").contains(stringToMatch.replaceAll(" ",""));
于 2012-09-28T16:28:57.463 回答
0

将它全部放入一个字符串变量中,比如 s,然后执行 s.contains("{my string: }); 如果 {my string: } 在 s 中,这将返回 true。

于 2012-09-28T16:21:41.343 回答
0

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

请注意,各个字符之间可以有任意数量的空格。

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

例如:

String myStr = "this is {my string: } ok";
if (myStr.trim().contains("{my string: }")) {
    //Do something.
} 
于 2012-09-28T16:26:38.553 回答
0

最简单的做法是去掉两个字符串中的所有空格。

return stringToSearch.replaceAll("\s", "").contains(
  stringToFind.replaceAll("\s", ""));
于 2012-09-28T16:29:28.167 回答
0

寻找正则表达式

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

这匹配任何包含

  1. 一个左大括号
  2. 零个或多个空格
  3. '我的'
  4. 一个或多个空格
  5. '细绳:'
  6. 零个或多个空格
  7. 右支架

这里的“空格”表示任何空格(制表符、空格、换行符、cr)

于 2012-09-28T16:37:31.397 回答