你這裏有幾個問題...
的char
型
ca
是char
,這意味着它包含一個字符。你不能讓它等於兩個字符
//a char plus a char is a char, not two chars (which is a String)
ca = str.charAt(i) + str.charAt(i);
不能存儲在char
//You are creating a String and trying to store it in ca, a char
ca = Character.toString(ca);
方法參數的String
和返回值
要退回str
傳遞給你的方法而不修改它,並且在第一個字符已經被測試之後就這樣做了(因爲它在循環中通過str
: -
//The String returned will always be the same as the one passed in
return str;
Java的報價
最後,您使用的是雙引號("
),這意味着String
,並試圖把它比作一個char
。您需要使用單引號('
),所以你與char
比較char
: -
//This is the source of "error: incomparable types"
if (ca == "a" || ca == "e" || ca =="i" || ca == "o" || ca == "u")
解決方案
你想返回一個新字符串,它是ca
或者是ca
兩次,如果是元音: -
String newString = "" + ca; //ca added once
if (ca == 'a' || ca == 'e' || ca =='i' || ca == 'o' || ca == 'u')
newString += ca; //ca added again if it's a vowel
您也想給這個新String
追加到一個完整的String
不斷循環週期,那麼所有的迴路後返回它: -
String changedString = "";
for (int i = 0; i < str.length(); i++)
{
//the above code
changedString += newString;
}
return changedString;
你收到了什麼錯誤? – nhouser9
當你將兩個字符加在一起時,你期望得到什麼? – jaymmer
包含樣本輸入和樣本輸出等測試用例。 – Enzokie