Java 替换字符串中的字符更改数组中的元素

Java 替换字符串中的字符更改数组中的元素,java,string,Java,String,我有两个目标: 从用户输入中获取两个字符串。第一个字符串的元音数量必须与第二个辅音数量相等 用第一个字符串中的连续辅音替换第二个字符串中的每个元音 例如: Input1: kajak Input2: kajaka Output: kkjjkk 我已经设法实现了第一个目标。然而,我有一个问题与第二个目标-改变数组中的字母。 我认为问题在于数组部分charSecond[I]=charFirst[I],因为输入的大小不同 编辑:我忘了在元音列表中添加大写字母,但忽略它,我会修复它 import

我有两个目标:

  • 从用户输入中获取两个字符串。第一个字符串的元音数量必须与第二个辅音数量相等
  • 用第一个字符串中的连续辅音替换第二个字符串中的每个元音
  • 例如:

    Input1: kajak   
    Input2: kajaka
    Output: kkjjkk
    
    我已经设法实现了第一个目标。然而,我有一个问题与第二个目标-改变数组中的字母。 我认为问题在于数组部分
    charSecond[I]=charFirst[I]
    ,因为输入的大小不同

    编辑:我忘了在元音列表中添加大写字母,但忽略它,我会修复它

    import java.util.Scanner;
    
    public class Zad2 {
            public static void main(String[] args) {
            Scanner scn = new Scanner(System.in);
            do {
                System.out.println("Provide two strings: ");
                String firstString = scn.next();
                String secondString = scn.next();
                char charSecond[] = secondString.toCharArray();
    
                String firstWithoutVowels = firstString.replaceAll("[aeiouyAEIOUY]", "");
                String secondWithoutConsonants = secondString.replaceAll("[BCDFGHJKLMNPQRSTVXZbcdfghjklmnpqrstvxz]", "");
                char charFirst[] = firstWithoutVowels.toCharArray();
                StringBuffer lengthOfFirst = new StringBuffer(firstWithoutVowels);
                StringBuffer lengthOfSecond = new StringBuffer(secondWithoutConsonants);
                if (lengthOfFirst.length() == lengthOfSecond.length()) {
    
                    for (int i = 0; i < charSecond.length; i++) {
                        if (charSecond[i] == 'a' || charSecond[i] == 'e' || charSecond[i] == 'i' || charSecond[i] == 'o' || charSecond[i] == 'u' || charSecond[i] == 'y') {
                            charSecond[i] =  charFirst[i];
                        }
                    }
                    for (int i = 0; i < charSecond.length; i++) {
                        System.out.print(charSecond[i]);
                    }
                    break;
                } else {
                    System.out.println("Wrong");
                }
    
            }
            while (true);
    
        }
    }
    
    import java.util.Scanner;
    公开课Zad2{
    公共静态void main(字符串[]args){
    扫描仪scn=新扫描仪(System.in);
    做{
    System.out.println(“提供两个字符串:”);
    String firstString=scn.next();
    String secondString=scn.next();
    char charSecond[]=secondString.toCharArray();
    String firstwithout元音=firstString.replaceAll(“[aeiouyeiouy]”,“”);
    String secondwithout辅音=secondString.replaceAll(“[BCDFGHJKLMNPQRSTVXZbcdfghjklmnpqrstvxz]”,”);
    char charFirst[]=firstwithout元音。toCharArray();
    StringBuffer lengthOfFirst=新的StringBuffer(第一个不带元音);
    StringBuffer LengthofsSecond=新的StringBuffer(第二个不带辅音);
    如果(lengthOfFirst.length()=lengthOfSecond.length()){
    for(int i=0;i
    if(lengthOfFirst.length()==lengthOfSecond.length())条件之前初始化int c=0

    替换代码(循环的第一个代码),如下所示:

    for (int i = 0; i < charSecond.length; i++) {
        if (charSecond[i] == 'a' || charSecond[i] == 'e' || charSecond[i] == 'i' || charSecond[i] == 'o' || charSecond[i] == 'u' || charSecond[i] == 'y') {
            charSecond[i] =  charFirst[c];
            c++;
        }
    }
    
    for(int i=0;i
    您好,我刚刚编辑了这篇文章,现在有关于数组中特定问题替换字母的信息。我的问题不能发布在Code Review上,因为它不是优化或安全问题/工作代码的审查(我的回答基于Codereview网站上的“我可以在这里问什么话题?”我想对我在帖子中使用的错误词语表示歉意,现在应该是正确的。感谢您检查Code Review的规则AdamK。你是对的,这是离题的。