【发布时间】:2017-04-05 08:58:31
【问题描述】:
我需要创建一个循环,在每个辅音后添加“o”
【问题讨论】:
-
提示:20代表什么?
-
他想查看他的辅音列表,但他没有考虑到他的字符串中有小写和大写字母!
标签: java arrays loops for-loop char
我需要创建一个循环,在每个辅音后添加“o”
【问题讨论】:
标签: java arrays loops for-loop char
我将引导您完成我在您的代码中更正和更改的内容以使其正常工作,以便您快速轻松地理解为什么您的代码不起作用以及为什么我的答案可以修复它。
您犯的错误是基本错误,坦率地说,如果您使用调试器逐步引导您了解代码的工作方式,那么您自己纠正这些错误应该不会太费劲。您应该了解如何使用调试器(例如 Eclipse 中使用的调试器,希望您使用 IDE 让您的生活更轻松)。
首先,当您在代码中查找辅音时,由于您的条件for(int x = 0; x<20; x++),您只需要遍历其中的一半,因为您的字符串包含辅音长度为 40 个字符。这意味着您缺少像字母 s 这样的辅音。
那么你就是根据你的瑞典语游戏找到的辅音。但是您永远不会处理不属于这些已找到辅音的字符。你应该做一个案例来处理这些“非辅音”字母,它们可能是元音或任何类型的字符(如标点符号等)。我在这里使用一个简单的布尔值来解决这个问题。
请记住,我的目标是尽可能少地更改您的代码,因此我选择添加一个布尔值来处理您的情况(检查是否存在辅音)。显然,还有许多其他方法可以实现您正在尝试做的事情。
以下是您应该添加到代码中的更改:
/*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*/
【讨论】:
所以想法是复制辅音并在它们之间加上“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。
【讨论】: