从一个String中删除所有英文原音
时间: 2024-09-27 17:08:22 浏览: 25
要在Java中删除一个字符串中的所有英文元音字母(即a、e、i、o、u),你可以编写一个函数,使用正则表达式匹配并替换它们。以下是简单的示例:
```java
import java.text.Normalizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String input = "Hello World! This is a test.";
System.out.println(removeVowels(input));
}
/**
* Remove all English vowels from the given string.
*/
public static String removeVowels(String str) {
// Normalize the string to lowercase and decompose accents
str = Normalizer.normalize(str.toLowerCase(), Normalizer.Form.NFD);
// Define the pattern to match vowels in their extended forms
Pattern pattern = Pattern.compile("\\p{Ll}(?=[aeiou])|\\p{Lu}(?![AEIOU])");
// Replace vowels with empty string
Matcher matcher = pattern.matcher(str);
return matcher.replaceAll("");
}
}
```
这个函数首先将输入字符串转换为小写,并消除任何附加的字符(如重音)。接着,它创建一个正则表达式模式,用于匹配元音及其前后的辅音。然后使用`replaceAll()`方法替换所有匹配的元音为空字符串。
阅读全文