2010-11-01 64 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.