java中的空格

时间:2012-08-08 11:26:02

标签: java whitespace

Java中有哪些类型的空格? 如果文本包含任何空格,我需要检查我的代码。

我的代码是:

if (text.contains(" ") || text.contains("\t") || text.contains("\r") 
       || text.contains("\n"))   
{  
   //code goes here
}   

我已经了解\n\t\rspace

8 个答案:

答案 0 :(得分:17)

对于非正则表达式方法,您可以检查每个字符的Character.isWhitespace

boolean containsWhitespace(String s) {
    for (int i = 0; i < s.length(); ++i) {
        if (Character.isWhitespace(s.charAt(i)) {
            return true;
        }
    }
    return false;
}

  

Java中的空格是什么?

文档指定了Java认为是空白的内容:

  

public static boolean isWhitespace(char ch)

     

根据Java确定指定的字符是否为空格。当且仅当它满足以下条件之一时,字符才是Java空白字符:

     
      
  • 它是一个Unicode空格字符(SPACE_SEPARATOR,LINE_SEPARATOR或PARAGRAPH_SEPARATOR),但也不是一个不间断的空格   ('\ u00A0','\ u2007','\ u202F')。
  •   
  • '\u0009',HORIZONTAL TABULATION。
  •   
  • '\u000A',LINE FEED。
  •   
  • '\u000B',垂直制表。
  •   
  • '\u000C',FORM FEED。
  •   
  • '\u000D',CARRIAGE RETURN。
  •   
  • '\u001C',FILE SEPARATOR。
  •   
  • '\u001D',GROUP SEPARATOR。
  •   
  • '\u001E',RECORD SEPARATOR。
  •   
  • '\u001F',UNIT SEPARATOR。
  •   

答案 1 :(得分:10)

boolean containsWhitespace = false;
for (int i = 0; i < text.length() && !containsWhitespace; i++) {
    if (Character.isWhitespace(text.charAt(i)) {
        containsWhitespace = true;
    }
}
return containsWhitespace;

或者,使用Guava,

boolean containsWhitespace = CharMatcher.WHITESPACE.matchesAnyOf(text);

答案 2 :(得分:2)

答案 3 :(得分:2)

如果您可以在项目中使用apache.commons.lang,最简单的方法就是使用那里提供的方法:

public static boolean containsWhitespace(CharSequence seq)

检查给定的CharSequence是否包含任何空格字符。

  

参数:

seq - the CharSequence to check (may be null) 
     

返回:

true if the CharSequence is not empty and contains at least 1 whitespace character

它处理空参数和空参数,并在中心位置提供功能。

答案 4 :(得分:1)

如果你想考虑基于正则表达式的方式

if(text.split("\\s").length > 1){
    //text contains whitespace
}

答案 5 :(得分:0)

来自太阳docs

  

\ s一个空格字符:[\ t \ n \ x0B \ f \ r \ n]

最简单的方法是将它与正则表达式一起使用。

答案 6 :(得分:0)

boolean whitespaceSearchRegExp(String input) {

    return java.util.regex.Pattern.compile("\\s").matcher(input).find();

} 

答案 7 :(得分:0)

为什么不检查text.trim()是否有不同的长度? :

if(text.length() == text.trim().length() || otherConditions){
    //your code
}