【问题标题】:How to check if a string contains a substring containing spaces?如何检查字符串是否包含包含空格的子字符串?
【发布时间】:2015-08-20 22:20:40
【问题描述】:

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

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

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

"{我的字符串:}"

非常感谢!

【问题讨论】:

  • 空格是红鲱鱼 - 它们被视为与任何其他字符一样,对任何正常的子字符串搜索功能没有影响

标签: java regex


【解决方案1】:

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

String stringToTest = "blah blah blah";

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

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

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

干杯,

杰米

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        注意,在不同的字符之间可以有任意数量的空格 字符。

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

        例如:

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

            寻找正则表达式

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

            这匹配任何包含

            的序列
            1. 左大括号
            2. 零个或多个空格
            3. '我的'
            4. 一个或多个空格
            5. '字符串:'
            6. 零个或多个空格
            7. 右括号

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-11-09
              • 2013-05-18
              • 1970-01-01
              • 1970-01-01
              • 2011-01-25
              • 2014-09-17
              • 1970-01-01
              相关资源
              最近更新 更多