是否有一种方法可以计算变量在java字符串中先前声明的次数?

是否有一种方法可以计算变量在java字符串中先前声明的次数?,java,Java,我试图制作一个程序,用一个数字替换任何元音,每当元音出现时从0开始计数,同时使用循环 到目前为止,我所拥有的: int num = 0; for (int number = 0; number <= (insert method that returns the number of times num occured in the string here / number of vowels of any type previously seen in the string); numbe

我试图制作一个程序,用一个数字替换任何元音,每当元音出现时从0开始计数,同时使用循环

到目前为止,我所拥有的:

int num = 0;
for (int number = 0; number <= (insert method that returns the number of times num occured in the string here / number of vowels of any type previously seen in the string); number ++)
{
    num = number;
}
String word = "AEIOUaeiou87878alkjdaslwlejrlajflawjkflwj";
word = word.replaceAll("A", "" + num).replaceAll("E", "" + num)
           .replaceAll("I", "" + num).replaceAll("O", "" + num)
           .replaceAll("U", "" + num).replaceAll("a", "" + num)
           .replaceAll("e", "" + num).replaceAll("i", "" + num)
           .replaceAll("o", "" + num).replaceAll("u", "" + num);

System.out.println(word);
int num=0;

对于(int number=0;number,您的问题是一次替换一个字母的所有实例。您需要为以0开头的元音设置一个计数器,然后在找到一个计数器时将其递增,然后用该计数器和其他非元音字符生成一个字符串

比如说,

public static void vowelReplacer(String word) {
    int vowelCount = 0;
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < word.length(); i++) {
        char c = word.charAt(i);
        if ("aieou".contains(String.valueOf(Character.toLowerCase(c)))) {
            sb.append(vowelCount++);
        } else {
            sb.append(c);
        }
    }

    System.out.println(sb.toString());
}

最重要的一步是将单词分割成一个数组。然后你可以一步一步地检查你的元音,必要时用int替换字符。如果不是这样,就让字符保持原样

但是如果您有匹配项,请不要忘记将其添加到
i
i++


检查元音时,您只需要小写字母,因为我们可以将字符串更改为小写字母进行检查。因此,您的书写量较少。

我不清楚您的要求-您要插入的数字是多少?之前看到的任何类型的元音的数量?之前看到的
A
s的数量等?不清楚是什么您正在询问。您希望返回什么结果来代替
(在此处插入返回字符串中num出现次数的方法)
为什么?只有良好的调试才能帮助您解决这一问题,当然还有明确的要求。以前看到的任何类型的元音的数量我都会从一些较小的用例开始。这将使我能够确保我走上正轨。比如abc->1bc(是吗?),cab->c2b(再次,是吗?),您需要做什么来做到这一点?(你是对的,一个循环;但是什么上的循环?整个字符串,一个子集?)然后看看这些。什么方法能帮助你达到你想要的目的?为他们做OPs作业真的对OP有帮助吗?我不认为有帮助。@mlk-投票否决我会让你感觉更好吗?我至少是想帮你。我不同意你在帮你。我要说你在阻碍OP。他们现在有机会学习。使用定期快车将单个
字符
转换为
字符串
上的离子匹配器还可以降低读取用于元音测试的if条件的复杂性。即
可能是元音匹配(“[aeiouAEIOU]”
。这也可以在不转换为小写的情况下工作
public static void main(String[] args) {
    vowelReplacer("AEIOUaeiou87878alkjdaslwlejrlajflawjkflwj");
    // 01234567898787810lkjd11slwl12jrl13jfl14wjkflwj
}
public static void main(String[] args) {

        String word = "AEIObUaeiou87878alkjdaslwlejrlajflawjkflwj";

        replaceVowel(word);
}

private static void replaceVowel(String word){
        String[] chars = word.split("");

        int i = 0;
        StringBuilder replacedWord = new StringBuilder();

        for (String oneChar : chars){
            if(check(oneChar)){
                replacedWord.append(String.valueOf(i));
                i++;
            }
            else{
                replacedWord.append(oneChar);
            }
        }
        System.out.println(replacedWord);
    }

    private static boolean check(String oneChar){
        oneChar = oneChar.toLowerCase();
        if(oneChar.equals("a")||oneChar.equals("b")){ // ...the rest of your vowels
            return true;
        }else{
            return false;
        }
    }