English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Как использовать Java regex для удаления гласных из строки?

Простая классовая переменная "[]" соответствует всем указанным символам. Следующее выражение соответствует символам, кроме xyz.

"[xyz]"

Таким образом, следующая выражение соответствует всем гласным в заданной строке ввода.

"([^aeiouAEIOU0-9\\W]+)";

Затем, вы можете использовать пустую строку "" для замены соответствующих символов, используя метод replaceAll().

Пример 1

public class RemovingVowels {
   public static void main( String args[] ) {
      String input = "Hi welcome to w3codebox";
      String regex = "[aeiouAEIOU]";
      String result = input.replaceAll(regex, "");
      System.out.println("Результат: " + result);
   }
}
Результат вывода
Результат: H wlcm t ttrlspnt

Пример 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main( String args[] ) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Вводите строку:\
      String input = sc.nextLine();
      String regex = "[aeiouAEIOU]";
      String constants = "";
      System.out.println("Входная строка:\n"+input);
      //Создание объекта шаблона
      Pattern pattern = Pattern.compile(regex);
      //Соответствие строки компилированному шаблону
      Matcher matcher = pattern.matcher(input);
      //Создание пустого строкового буфера
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         constants = constants+matcher.group();
         matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("Результат:\n"+ sb.toString()+constants );
   }
}
Результат вывода
Вводите строку:
this is a sample text
Входная строка:
this is a sample text
Результат:
ths s smpl txtiiaaee

Вам может понравиться