16

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

我的代码是:

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

我已经知道\n,\t和。\rspace

4

8 回答 8

20

对于非正则表达式方法,您可以检查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',水平制表。
  • 它是'\u000A',LINE FEED。
  • 它是'\u000B',垂直制表。
  • 它是'\u000C',FORM FEED。
  • '\u000D',回车。
  • 它是'\u001C',文件分隔符。
  • 它是'\u001D',组分隔符。
  • 它是'\u001E',记录分隔符。
  • 它是'\u001F',单位分隔符。
于 2012-08-08T11:28:16.887 回答
12
boolean containsWhitespace = false;
for (int i = 0; i < text.length() && !containsWhitespace; i++) {
    if (Character.isWhitespace(text.charAt(i)) {
        containsWhitespace = true;
    }
}
return containsWhitespace;

或者,使用番石榴,

boolean containsWhitespace = CharMatcher.WHITESPACE.matchesAnyOf(text);
于 2012-08-08T11:30:54.003 回答
3

If you want to consider a regular expression based way of doing it

if(text.split("\\s").length > 1){
    //text contains whitespace
}
于 2012-08-08T11:40:32.060 回答
2

使用Character.isWhitespace()而不是自己创建。

在 Java 中,如何将 String 转换为 char 或将 char 转换为 String?

于 2012-08-08T11:30:18.493 回答
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

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

于 2016-08-01T10:17:38.247 回答
0

来自太阳文档

\s 空白字符:[ \t\n\x0B\f\r]

最简单的方法是使用正则表达式。

于 2012-08-08T11:28:07.937 回答
0

Why don't you check if text.trim() has a different length? :

if(text.length() == text.trim().length() || otherConditions){
    //your code
}
于 2016-12-01T10:06:52.767 回答
0
boolean whitespaceSearchRegExp(String input) {

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

} 
于 2015-07-12T10:33:48.293 回答