在Java中删除字符串中的空格– trim(),strip()

时间:2020-01-09 10:34:54  来源:igfitidea点击:

在本文中,我们将学习如何从Java中的字符串中删除空格,这些空格可能是前导空格,尾随空格或者单词之间的空格。字符串类提供以下选项来删除Java中的字符串空间。

  • 如果要删除开头的空格(前导空格)和结尾的空格(后缀空格),最好的方法是使用Java String类的trim()方法。根据trim()方法,空格定义为代码点小于或者等于" U + 0020"的任何字符(空格字符)。
  • 从Java 11开始,Java String类中还提供了strip()方法,用于删除开头和结尾的空格。此方法在内部使用Character.isWhitespace()检查是否有白色字符。还有两种删除前导空格或者尾随空格的方法。如果只想删除尾随的空白,则可以使用stripLeading()–删除所有前导的空白。 Java 11及更高版本可用。

如果我们只想删除前导空格,则可以使用

  • stripTrailing()–删除所有尾随空白。 Java 11及更高版本可用。
  • 另一种选择是使用Java String类的replaceAll()方法,将正则表达式" \ s +"作为参数删除空格。此选项删除单词之间的空格,该空格与前导空格和尾随空格分开。

这里要记住的一件事是,无论如何以任何方式修改字符串,都会创建新的字符串,因为在Java中String是不可变的,因此我们需要将修改后的字符串分配给String引用。

使用trim()方法删除空格Java示例

  • trim()–返回值为该字符串的字符串,并删除所有前导和尾随空格,其中空格定义为代码点小于或者等于" U + 0020"(空格字符)的任何字符。
public class StringSpaces {
  public static void main(String[] args) {	
    String str = "  Hello    World		";
    str = str.trim();
    System.out.println("String- " + str);
  }
}

输出:

String- Hello    World

如我们所见,尽管单词之间的空格没有删除,但开头和结尾的空格已删除。

使用strip()方法删除空格Java示例

从Java 11开始,Java中还有一个strip()方法,用于从字符串中删除前导和尾随空格。 strip()方法在内部使用Character.isWhitespace()检查空白,这提供了比trim()宽得多的空白定义。在trim()中,空格定义为代码点小于或者等于" U + 0020"(空格字符)的任何字符。

让我们尝试通过一个使用unicode字符'\ u2002'的示例进行说明,该字符无法被trim()方法识别。

public class StringSpaces {
  public static void main(String[] args) {
    String str = '\u2002'+"Hello World!"+ '\u2002';
    System.out.println("String-" + str);
    str = str.trim();
    System.out.println("String-" + str);
  }
}

输出:

String- Hello World!
String- Hello World!

我们会看到trim()方法没有删除前导和尾随空格,因为使用了大于'\ u0020'的Unicode字符。使用strip()方法可以删除这些空格。

public class StringSpaces {
  public static void main(String[] args) {
    String str = '\u2002'+"Hello World!"+ '\u2002';
    System.out.println("String-" + str);
    str = str.strip();
    System.out.println("String-" + str);
  }
}

输出:

String- Hello World!
String-Hello World!

使用replaceAll()方法Java示例删除空格

如果我们必须删除单词之间的空格,该空格与前导空格和尾随空格之间的距离必须太远,则可以使用replaceAll()方法。

  • replaceAll(String regex,String replacement)–使用给定的替换项替换与给定的正则表达式匹配的此字符串的每个子字符串。

通过传递" \ s +"作为匹配一个或者多个空格的正则表达式,并传递""代替那些空格,我们可以从字符串中删除所有空格。

public class StringSpaces {
  public static void main(String[] args) {	
    String str = "  Hello    World		";
    str = str.replaceAll("\s+", "");
    System.out.println("String- " + str);
  }
}

输出:

String- Hello World!
String- HelloWorld