Java中有哪些类型的空格? 如果文本包含任何空格,我需要检查我的代码。
我的代码是:
if (text.contains(" ") || text.contains("\t") || text.contains("\r")
|| text.contains("\n"))
{
//code goes here
}
我已经了解\n
,\t
,\r
和space
。
答案 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)
使用Character.isWhitespace()而非创建自己的。
In Java how does one turn a String into a char or a char into a String?
答案 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)
答案 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
}