【问题标题】:Trying to add a character before each vowel in a String尝试在字符串中的每个元音之前添加一个字符
【发布时间】:2016-02-12 19:39:28
【问题描述】:

我想在单词的每个元音前插入一个“ab”

例如,如果用户输入单词:fire 必须改为:fabirabe 但我的代码只在单词之前输入ab:abfire。我该如何解决?

到目前为止,这是我的代码:

import java.util.Scanner;
public class Foothill
{ 
   // class variables shared by more than one method
    String prompt;
    static String strUserResponse;

    // main method
    public static void main (String[] args)
    {
        giveInstructions();
        getUserInput();  
        convertToTurkeyIrish();
        vowelCounter();
    }
    public static String convertToTurkeyIrish()
    {

        String turkeyIrish = strUserResponse;
        String turkeyIrish2;
        turkeyIrish2 = "ab" + strUserResponse.replaceAll("(aeiouAEIOU)", "$1ab");
        System.out.println("Word In Turkey Irish: " +  turkeyIrish2);
        return turkeyIrish;
    }

    public static void vowelCounter()
    {
        int vowel = 0;
        strUserResponse.length();
        char vowels;
        vowels = ' ';
        for (int j = 0; j <= strUserResponse.length() - 1 ; j++)
        {
            vowels = strUserResponse.charAt(j);
            if  ((vowels == 'a') || (vowels == 'A') || (vowels == 'e') ||   (vowel == 'E') || (vowel == 'i')|| (vowels == 'I') || (vowels == 'o')  (vowels == 'O') || (vowel == 'u') || (vowels == 'u'))
            {
                System.out.println("Vowels in " + strUserResponse + ": " + vowel++);
            }
        }
    }
}

【问题讨论】:

    标签: java loops if-statement methods java.util.scanner


    【解决方案1】:

    您的正则表达式错误,替换字符串也是如此。试试这个:

    strUserResponse.replaceAll("([aeiouAEIOU])", "ab$1");
    

    【讨论】:

    • 这里没有捕获组,$1 会是什么?
    【解决方案2】:

    将您的正则表达式更改为:

    (?i)(a|e|i|o|u)
    

    替换为:

    ab$1
    

    您当前的正则表达式是aeiouAEIOU,它匹配一个序列字符:“aeiouAEIOU”。


    测试一下:

    System.out.println("fire".replaceAll("(?i)(a|e|i|o|u)", "ab$1"));
    // fabirabe
    

    或者按照@amit 的建议,您可以简单地使用字符类并编写[aeiou]。请注意,我使用(?i) 表示正则表达式不区分大小写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-15
      相关资源
      最近更新 更多