У вас есть несколько проблем здесь ...
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