2012-09-28 95 views
3

說我有在Java中像這樣的字符串:如何檢查一個字符串是否包含包含空格的子字符串?

「這是我的{字符串:} OK」

注意,可以有任意數量的各種人物之間的白色空間的。如何檢查上面的字符串,看它是否只包含子:

「{我的字符串:}」

非常感謝!

+0

的空間是一個紅鯡魚 - 它們就像任何其他角色一樣對待,對任何正常的子字符串搜索功能都沒有影響 – Alnitak

回答

0

把一切擺成一個字符串變量,說S,然後做s.contains(「{我的字符串:});如果{我的字符串:}這將返回true屬於S

3

如果你是。想看看是否一個字符串包含的字符的另一個特定的順序,那麼你可以做這樣的事情:

String stringToTest = "blah blah blah"; 

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

你也可以用火柴有關字符串匹配一個體面的解釋,我建議你檢查出了Java的Oracle教程對於正則表達式:

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

乾杯,

傑米

0

爲此,你需要使用String#contains(CharSequence)

請注意,各種 字符之間可以有任意數量的空白。

爲此目的String#trim()方法用於返回字符串的副本,省略前導和尾隨空白。

對於如:

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

如果您有任何數量的匹配字符串的每個字符之間的空白,我想你最好從您嘗試之前,以匹配字符串中刪除所有空格搜索。即:

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

最簡單的做法是從兩個字符串中去掉所有的空格。

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

查找正則表達式

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

此匹配包含

  1. 阿左括號
  2. 零個或多個空格
  3. '我'
  4. 一個任意序列或更多空間
  5. '字符串:'
  6. 零個或多個空格
  7. 一個右括號

在哪裏 '空間' 在這裏是指任何空白(製表符,空格,換行,CR)

相關問題