如何检查一个Javastring不是全部空格?
我想检查Javastring或字符数组不是由空白,使用Java?
这是一个非常类似的问题,除了Javascript:
我怎样才能检查string是否包含字符和空白,而不仅仅是空白?
编辑:我删除了关于字母数字字符的位,所以它更有意义。
我能想到的最短的解决scheme:
if (string.trim().length() > 0) ...
这只会检查(非)空白。 如果你想检查特定的字符类,你需要使用强大的match()
与正则expression式,如:
if (string.matches(".*\\w.*")) ...
…检查至less一个(ASCII)字母数字字符。
我会使用apache commons-lang库。 它有一个名为StringUtils的对象,可用于各种string操作。 为了检查一个string是不是全部空白,你可以使用下面的代码:
StringUtils.isBlank(<your string>)
这里是参考: StringUtils.isBlank
比Carl Smotricz提到的略短:
!string.trim().isEmpty();
StringUtils.isBlank(string)
http://commons.apache.org/lang/api-2.3/org/apache/commons/lang/StringUtils.html
if(target.matches("\\S")) // then string contains at least one non-whitespace character
注意使用反斜杠cap-S,意思是“非空白字符”
我敢打赌,这是最简单的(也许是最快的)解决scheme。
这个答案更侧重于旁注“ 即至less有一个字母数字字符 ”。 除此之外,对于其他(较早的)解决scheme,它不会增加太多,只是在string为null
情况下它不会伤害到NPE。
如果(1)s为null
或者(2)s为空,或者(3)s只包含白色字符,我们需要false
。
public static boolean containsNonWhitespaceChar(String s) { return !((s == null) || "".equals(s.trim())); }
如果你只是检查空白,不关心null,那么你可以使用org.apache.commons.lang.StringUtils.isWhitespace(String str),
StringUtils.isWhitespace(String str);
(检查string是否只包含空格。)
如果你还想检查null(包括空白),那么
StringUtils.isBlank(String str);
修剪方法应该适合你。
http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/lang/String.html#trim();
返回string的副本,省略前导和尾随空白。 如果这个String对象表示一个空字符序列,或者这个String对象表示的字符序列的第一个和最后一个字符的代码都大于'\ u0020'(空格字符),则返回对该String对象的引用。
否则,如果string中没有代码大于'\ u0020'的字符,则会创build并返回表示空string的新String对象。
否则,令k为代码大于'\ u0020'的string中第一个字符的索引,并且让m为代码大于'\ u0020'的string中最后一个字符的索引。 将创build一个新的String对象,表示该string的子string,该string以索引k处的字符开头,并以索引m处的字符结尾,即this.substring(k,m + 1)的结果。
这个方法可以用来修剪一个string的开始和结束的空白。 实际上,它也修剪所有的ASCII控制字符。
返回:删除了前导空白和尾部空白的此string的副本,如果它没有前导或尾随空白,则为空。
你可以修剪,然后比较一个空string或可能检查长度为0。
替代scheme:
boolean isWhiteSpaces( String s ) { return s != null && s.matches("\\s+"); }
trim()和其他提到的正则expression式不适用于所有types的空格
即:Unicode字符'LINE SEPARATOR'http: //www.fileformat.info/info/unicode/char/2028/index.htm
Java函数Character.isWhitespace()涵盖所有情况。
这就是为什么应该使用已经提到的解决schemeStringUtils.isWhitespace(String) /或StringUtils.isBlank(String) 。