Java:对空白/空字符串的处理

郎家岭伯爵 2023年04月03日 440次浏览

前言

总结一下 Java 中对空白/空字符串的处理。

实现

空白字符串通常指空格、换行符、制表符等,空字符串通常指 String str = ""; 声明的字符串(注意与 null 值区分)。

注意:

  • 下文中关于空白/空字符串的操作均未涉及 null 值判断。业务代码中是应该增加 null 值判断的,否则可能会出现 NullPointerException 异常。

判断字符串是否为空白

判断字符串是否为空或者只包含空格、制表符、换行符等空白字符,可以使用 isBlank() 方法。

String str = "  ";
if (str.isBlank()) {
    System.out.println("字符串为空白");
}

输出:

字符串为空白

isBlank() 方法是在 JDK 11 中添加到 String 类中的。如果是低版本的 JDK,则可以使用 Apache Commons Lang 库中的 StringUtils.isBlank() 方法来判断字符串是否为空白。

判断字符串是否为空

判断字符串是否为空,可以使用 isEmpty() 方法。

String str = "";
if (str.isEmpty()) {
    System.out.println("字符串为空");
}

String str1 = "   ";
if (!str1.isEmpty()){
    System.out.println("字符串不为空");
}
if (str1.isBlank()){
    System.out.println("字符串为空白");
}

输出:

字符串为空
字符串不为空
字符串为空白

去除字符串两端的空白字符

使用 trim() 方法,它会去除字符串两端的空格、制表符、换行符等空白字符。

String str = "  hello world  ";
String trimmedStr = str.trim();
System.out.println(trimmedStr);

输出:

# 注意两边的空格被处理了,中间的空格保留
hello world

去除字符串中所有的空白字符

使用 replaceAll() 方法,它可以使用正则表达式替换字符串中所有的空白字符。

String str = "hello\t  world\n";
String replacedStr = str.replaceAll("\\s", "");
System.out.println(replacedStr);

输出:

helloworld

\\s 表示匹配空白字符,包括空格、换行符、制表符等。

总结

总结一下 Java 中对空白/空字符串的处理。