📅  最后修改于: 2023-12-03 14:55:42.931000             🧑  作者: Mango
在Java中,我们可以使用正则表达式来检查一个字符串是否仅由空格组成。下面是一个示例程序:
public class Main {
public static void main(String[] args) {
String str1 = " "; // 包含空格的字符串
String str2 = " abc "; // 包含非空格字符的字符串
String str3 = ""; // 空字符串
String str4 = null; // 空指针
boolean isAllWhiteSpace1 = str1.matches("^\\s*$");
boolean isAllWhiteSpace2 = str2.matches("^\\s*$");
boolean isAllWhiteSpace3 = str3.matches("^\\s*$");
// NullPointerException
// boolean isAllWhiteSpace4 = str4.matches("^\\s*$");
System.out.println(isAllWhiteSpace1); // true
System.out.println(isAllWhiteSpace2); // false
System.out.println(isAllWhiteSpace3); // true
}
}
以上示例中,我们使用了 matches
方法和正则表达式 ^\\s*$
来检查字符串是否由空格组成。其中,正则表达式的含义如下:
^
匹配字符串的开头。\\s
匹配任意的空白字符,包括空格、制表符、换行符等。*
表示匹配前面的元素零次或多次,也就是匹配任意数量的空白字符。$
匹配字符串的结尾。因此,正则表达式 ^\\s*$
可以匹配仅由空格组成的字符串。
需要注意的是,matches
方法会在执行正则表达式之前先检查字符串是否为 null
。如果字符串为 null
,则会抛出 NullPointerException
,因此我们需要先判断字符串是否为 null
。
另外,空字符串 ""
也可以被视为仅由空格组成的字符串。因此,对于空字符串,同样返回 true
。
以上就是检查Java中的字符串是否仅包含空格的程序。