📜  在Java中使用 Regex 删除空格

📅  最后修改于: 2022-05-13 01:55:33.509000             🧑  作者: Mango

在Java中使用 Regex 删除空格

给定一个字符串,您的任务是使用Java Regex(正则表达式)删除字符串中的空格。

例子

Input :    Hello   Everyone . 
Output : HelloEveryone.

Input :   Geeks  for  Geeks    .
Output : GeeksforGeeks.

常用表达

正则表达式或正则表达式是一种用于定义字符串模式的 API,可用于在Java中搜索、操作和编辑字符串。电子邮件验证和密码是正则表达式广泛用于定义约束的几个字符串区域。正则表达式在Java .util.regex包下提供。

方法

有许多方法可以使用Java中的 Regex 删除字符串中的空格。下面列出了其中的一些。

  • 使用 Regex.Matcher.replaceAll() 方法
  • 使用 appendReplacement() 方法

1. 使用 Matcher.replaceAll() 方法

Java.util.regex.Matcher.replaceAll(String replacement ) 方法用给定的替换字符串替换与模式匹配的输入序列的每个子序列。

宣言:

public String replaceAll(String replacement) 

参数: replacement – 替换字符串。

返回值:通过将每个匹配的子序列替换为替换字符串来构造字符串,并根据需要替换捕获的子序列。

以下程序演示了如何使用 util.regex.Pattern 类的 matcher.replaceAll(String replacement) 方法删除空格。

Java
// Java program to remove whitespaces from a string
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
public class GeeksforGeeks {
  
    public static String removeWhite(String s) {
      
        // Creating a pattern for whitespaces
        Pattern patt = Pattern.compile("[\\s]");
  
        // Searching patt in s.
        Matcher mat = patt.matcher(s);
  
        // Replacing
        return mat.replaceAll("");
   }
  
    public static void main(String[] argv)
    {
        String s = "   Hello  Geeks  .  ";
        System.out.println(removeWhite(s));
    }
}


Java
// Java program to remove the whiltespaces
// in a string using Java Regex
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
class GFG {
    public static void main (String[] args) {
        
          String input = "   Geeks    for   Geeks  ";
          
          String regex = "\\s";
          String constants = "";
        
          // Creating a pattern object
          Pattern pattern = Pattern.compile(regex);
        
          // Matching the compiled pattern in the String
          Matcher matcher = pattern.matcher(input);
        
          // Creating an empty string buffer
          StringBuffer sb = new StringBuffer();
        
          while (matcher.find()) {
            constants = constants+matcher.group();
            matcher.appendReplacement(sb, "");
          }
      matcher.appendTail(sb);
      System.out.println(sb.toString()+constants);
    }
}


输出
HelloGeeks.

2. 使用 appendReplacement() 方法

Matcher 类appendReplacement(StringBuilder, String)方法表现为追加和替换方法。此方法读取输入字符串并将其替换为匹配器字符串中的匹配模式。

句法:

public Matcher appendReplacement(StringBuilder builder, String stringToBeReplaced)

参数:此方法有两个参数:

  • builder :这是存储目标字符串的 StringBuilder 。
  • stringToBeReplaced :这是匹配器中要替换的字符串。

返回值:此方法返回一个替换了目标字符串的匹配器

异常:此方法抛出以下异常:

  • IllegalStateException :如果尚未尝试匹配,或者之前的匹配操作失败。
  • IllegalArgumentException :如果替换字符串引用了模式中不存在的命名捕获组。
  • IndexOutOfBoundsException :如果替换字符串引用了模式中不存在的捕获组。

以下程序演示了如何使用 util.regex.Pattern 类的 matcher.appendReplacement(StringBuilder builder, String stringToBeReplaced) 方法删除空格。

Java

// Java program to remove the whiltespaces
// in a string using Java Regex
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
class GFG {
    public static void main (String[] args) {
        
          String input = "   Geeks    for   Geeks  ";
          
          String regex = "\\s";
          String constants = "";
        
          // Creating a pattern object
          Pattern pattern = Pattern.compile(regex);
        
          // Matching the compiled pattern in the String
          Matcher matcher = pattern.matcher(input);
        
          // Creating an empty string buffer
          StringBuffer sb = new StringBuffer();
        
          while (matcher.find()) {
            constants = constants+matcher.group();
            matcher.appendReplacement(sb, "");
          }
      matcher.appendTail(sb);
      System.out.println(sb.toString()+constants);
    }
}
输出
GeeksforGeeks