java - 在元音和辅音之间添加空格?

标签 java

请有人帮我在元音和辅音之间添加空格。结果应该类似于 ae bc i

public static void main(String[] args) {
        String str = "aebci";

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.length()-1; i++) {
            if ((str.charAt(i) == 'a' || str.charAt(i) == 'e' || str.charAt(i) == 'i' || str.charAt(i) == 'o' || str.charAt(i) == 'u' ) &&
                 (str.charAt(i+1) != 'a' || str.charAt(i+1) != 'e' || str.charAt(i+1) != 'i' || str.charAt(i+1) != 'o' || str.charAt(i+1) != 'u' ))    {
                sb.append(" ");
            }
                sb.append(str.charAt(i));
        }
        System.out.println(sb.toString());;
    }
}

最佳答案

当字符串包含彼此靠近的元音和辅音时,您需要找到所有位置。可以使用正则表达式:

public static void main(String[] args) {
    String str = "aebci";
    Pattern pattern = Pattern.compile("([aeiou][^aeiou])|([^aeiou][aeiou])");
    Matcher matcher = pattern.matcher(str);

    StringBuffer buffer = new StringBuffer();
    while (matcher.find()) {
        String group = matcher.group(); // two symbols
        matcher.appendReplacement(buffer, group.charAt(0) + " " + group.charAt(1));
    }
    matcher.appendTail(buffer);
    System.out.println(buffer.toString());
}

输出:

ae bc i

关于java - 在元音和辅音之间添加空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59355761/

相关文章:

java - Android 每 30 天发送一次通知?

java - 发现不兼容的类型 : required: default enums in annotations

java - 如何动态地将 JSON 转换为数据库表?

java - 如何检查设备上是否存在应用程序?

java - 在 TLS 重新协商期间更改 TrustManager 的接受发行者

java - 无法使卡牌/牌组目标程序正常工作

java - 从数组中删除元素然后减小数组大小的最有效方法

java - 删除一对多关系中的 child

java - 如何通过 Maven pom.xml 安装 Grails 插件?

java - 无法添加或更新子行 : a foreign key constraint fails