如何为其创建循环

时间:2016-11-21 20:48:09

标签: java arrays loops for-loop char

我需要创建一个添加" o"在每个辅音之后

2 个答案:

答案 0 :(得分:1)

我将引导您完成我在代码中更正和更改的内容,以使其工作,以便您快速轻松地理解为什么您的代码无法正常工作以及为什么我的答案会修复它。

你犯的错误是基本错误,坦率地说,如果你使用调试器逐步引导你的代码如何工作,那么你自己不应该很难纠正它们。您应该了解如何使用调试器(例如,Eclipse中使用的调试器,希望您使用IDE来使您的生活更轻松。)

首先,当你在你的代码中寻找一个辅音时,由于你的条件为for(int x = 0; x<20; x++),你只能走过它的一半,因为如果长度为40个字符,你的字符串会持有辅音。这意味着你缺少像字母那样的辅音。

然后根据您的瑞典语游戏,您正确找到辅音。但是你永远不会处理那些没有这些辅音的人物。你应该提出一个案例来处理这些&#34;非辅音&#34;字母,可以是元音或任何形式的字符(如标点符号等)。我在这里使用一个简单的布尔值来解决这个问题。

请记住,我的目标是尽可能少地更改您的代码,因此我去添加一个布尔来处理您的案例(检查辅音的存在)。显然,还有许多其他方法可以实现您的目标。

以下是您应该添加到代码中的更改:

    /*This comes after your print "På rövarspråk:"*/
    boolean isConsonant = false; //Boolean to check wether there is a consonant or not
    for(int i = 0; i<length; i++) {
        //You didn't go through the whole consonants list you made with your prevision condition
        for(int x = 0; x<consonants.length; x++){
            if(array[i] == consonants[x])
            {
                isConsonant = true; //Set the boolean accordingly
                String add = array[i]+"o"+array[i];
                slang = slang + add;
                break;
            }
        }
        if(!isConsonant){ //If we don't have a consonant, add the char to the result string
            slang += array[i];
        }
        isConsonant = false; //Reset the boolean for the next character
    }
    /*Here you can print the result (slang) if you want, as you did*/

答案 1 :(得分:0)

所以我的想法是将辅音加在一起,并在它们之间添加“o”,就像t变成tot,s变成了sos。人声只是被复制了。所以你需要一种方法来告诉你一个给定的角色是否是一个声音或辅音来决定你的决定。

public static boolean isConsonant(char inputChar){

    final String consonantsx = "bBcCdDfFgGhHjJkKlLmMnNpPqQrRsStTvVwWxXzZ"; 
    char consonants[] = consonantsx.toCharArray(); // String to charr

    for(int i=0; i < consonants.length;i++){
        if(inputChar == consonants[i]){ //note that in Strings u use the equals method instead of "=="
            return true;
        }
    }

    return false;
}

鉴于此方法,您可以在“翻译方法”中使用它。

    public String rovarSpraket(String normalString) {

    char[] array = normalString.toCharArray(); // Input to a char array

    System.out.println("På rövarspråk:");

    String slang = "";

    for (int i = 0; i < normalString.length(); i++) {

        String add = "" + array[i];

        if(Goran.isConsonant(array[i])){

            add += "o" + array[i];

        }

        slang += add;

        }

    return slang;
}

这就像在维基百科文章https://en.wikipedia.org/wiki/R%C3%B6varspr%C3%A5ket中那样顽固地转向了sostotubobboborornon。