2010-11-01 63 views
47

如何檢查字符串是否包含空格字符,空格或「」。如果可能,請提供一個Java示例。如何查找字符串中的空白空間?

例如:String = "test word";

+3

什麼是「空白空間」?是嗎 」」? – 2010-11-01 09:47:38

+9

@Dominic - 當你清空「全部空間」時你會得到什麼。咄! – 2010-11-01 10:54:57

回答

76

用於檢查字符串是否包含空格使用Matcher並將其稱爲find方法。

Pattern pattern = Pattern.compile("\\s"); 
Matcher matcher = pattern.matcher(s); 
boolean found = matcher.find(); 

如果你想檢查它是否只包含空格那麼你可以使用String.matches

boolean isWhitespace = s.matches("^\\s*$"); 
+1

空字符串是否包含空格?布爾應該是布爾值,我認爲。 – Joni 2010-11-01 09:52:40

+0

\\ s就是我在找的東西,謝謝 – Vivekanand 2013-04-03 05:34:35

2

你可以使用正則表達式,以確定是否有一個空白字符。 \s

更多的信息正則表達式here

+0

您可以通過給出使用此正則表達式的Java代碼來改進此答案。 – 2015-04-27 12:46:36

1
public static void main(String[] args) { 
    System.out.println("test word".contains(" ")); 
} 
+2

這個答案不檢查所有的空格。 – 2015-04-27 13:41:55

15

這會告訴你,如果有任何空格:

通過循環:

for (char c : s.toCharArray()) { 
    if (Character.isWhitespace(c)) { 
     return true; 
    } 
} 

s.matches(".*\\s+.*") 

而且StringUtils.isBlank(s)會告訴你,如果有只有 whitepsaces。

+2

尼斯綜合答案(+1),但循環變量可以在不創建新的字符數組的情況下完成(請參閱我的回答) – 2010-11-01 09:53:50

+0

@seanizer true。 +1給你。爲此:) – Bozho 2010-11-01 09:58:40

21

檢查是否字符串包含至少一個空白字符:

public static boolean containsWhiteSpace(final String testCode){ 
    if(testCode != null){ 
     for(int i = 0; i < testCode.length(); i++){ 
      if(Character.isWhitespace(testCode.charAt(i))){ 
       return true; 
      } 
     } 
    } 
    return false; 
} 

參考:


使用Guava庫,它是簡單得多:

return CharMatcher.WHITESPACE.matchesAnyOf(testCode); 

CharMatcher.WHITESPACE也有很多更徹底,當涉及到Unicode支持。

+2

我想這個代碼是不完全unicode知道,因爲:'這種方法不能處理補充字符。要支持所有Unicode字符,包括補充字符,請使用isWhitespace(int)方法。' – 2010-11-01 10:05:37

+0

確實如此,但是我想知道在超出0xffff的Unicode範圍中定義了多少新的空白字符... – 2010-11-01 10:09:40

+0

我完全不知道,我提到它只是爲了完整性。 – 2010-11-01 10:49:19

1

使用此代碼,是我有更好的解決方案,當你有四個空格,並且是一個txt文件的導出。

public static boolean containsWhiteSpace(String line){ 
    boolean space= false; 
    if(line != null){ 


     for(int i = 0; i < line.length(); i++){ 

      if(line.charAt(i) == ' '){ 
      space= true; 
      } 

     } 
    } 
    return space; 
} 
-1
package com.test; 

public class Test { 

    public static void main(String[] args) { 

     String str = "TestCode "; 
     if (str.indexOf(" ") > -1) { 
      System.out.println("Yes"); 
     } else { 
      System.out.println("Noo"); 
     } 
    } 
} 
+2

請解釋你爲什麼這樣做,爲什麼這是解決方案。評論你的代碼! – ReneS 2015-03-16 12:33:10

+0

這段代碼找不到很多空格。 – 2015-04-27 12:44:48

0
import java.util.Scanner; 
public class camelCase { 

public static void main(String[] args) 
{ 
    Scanner user_input=new Scanner(System.in); 
    String Line1; 
    Line1 = user_input.nextLine(); 
    int j=1; 
    //Now Read each word from the Line and convert it to Camel Case 

    String result = "", result1 = ""; 
    for (int i = 0; i < Line1.length(); i++) { 
     String next = Line1.substring(i, i + 1); 
     System.out.println(next + " i Value:" + i + " j Value:" + j); 
     if (i == 0 | j == 1) 
     { 
      result += next.toUpperCase(); 
     } else { 
      result += next.toLowerCase(); 
     } 

     if (Character.isWhitespace(Line1.charAt(i)) == true) 
     { 
      j=1; 
     } 
     else 
     { 
      j=0; 
     } 
    } 
    System.out.println(result); 
0

使用org.apache.commons.lang.StringUtils。

  1. 搜索空格

布爾withWhiteSpace = StringUtils.contains( 「我的名字」,「「);

  • 要在串
  • StringUtils.deleteWhitespace(空)= NULL StringUtils.deleteWhitespace( 「」)= 「」 刪除所有空格StringUtils.deleteWhitespace( 「ABC」)= 「ABC」 StringUtils.deleteWhitespace( 「AB C」)= 「ABC」

    0
    String str = "Test Word"; 
          if(str.indexOf(' ') != -1){ 
           return true; 
          } else{ 
           return false; 
          } 
    
    +0

    要清楚,請在代碼中添加一個示例,如評論。 – pirs 2017-10-28 04:20:43

    0

    我的目的誰給你使用String.contains一個非常簡單的方法:

    public static boolean containWhitespace(String value) { 
        return value.contains(" "); 
    } 
    

    小使用示例:

    public static void main(String[] args) { 
        System.out.println(containWhitespace("i love potatoes")); 
        System.out.println(containWhitespace("butihatewhitespaces")); 
    } 
    

    輸出:

    true 
    false 
    
    0

    基本上可以做到這一點

    if(s.charAt(i)==32){ 
        return true; 
    } 
    

    您必須編寫布爾方法。空格字符爲32.