У меня возникли проблемы с этим заданием:Как заменить символ в строке без использования Replace() в Java?
Учитывая строку, заменить первое вхождение «в» с «х», вторым вхождением «A» с «хм» и третьим появления «a» с «xxx». После третьего появления снова запустите шаблон замены «x», «xx», «xxx» ... и т. Д .; однако, если за «a» следуют более двух других символов «a» в строке, то вместо этого «a» не заменяйте символы «a».
Не допускается использование метода замены.
aTo123X ("ababba") → "xbxxbbxxx"
aTo123X ("anaceeacdabnanbag") → "xnxxceexxxcdxbnxxnbxxxg"
aTo123X ("aabaaaavfaajaaj") → "xxxbxxxaaavfaajaaj"
aTo123X ("pakaaajaaaamnbaa ") → "pxkxxxxxxjxxaaamnbaa"
aTo123X (" aaaak ") → "xaaak"
Выход моего кода с включенным, добавлено x, но не правильное количество x.
public String aTo123X(String str) {
/*
Strategy:
get string length of the code, and create a for loop in order to find each individual part of the String chars.check for a values in string and take in pos of the a.
if one of the characters is a
replace with 1 x, however, there aren't more than 2 a's immediately following first a and as it keeps searching through the index, add more x's to the original string, but set x value back to 1 when x reaches 3.
if one of characters isn't a,
leave as is and continue string.
*/
String xVal = "";
String x = "x";
String output = "";
for (int i = 0; i < str.length(); i++){
if(str.charAt(i) == 'a'){
output += x;
str.substring(i+1, str.length());
}
output += str.charAt(i);
}
return output;
}
И в чем проблема? – Maroun
@MarounMaroun, когда я возвращаю его, он не удаляет a и просто добавляет x, и слишком много в этом отношении –
@Shivam Здесь «a», после которого не должно происходить никаких изменений, является 1-й «a» 1-го появление «aaa». Просто прочитайте свой комментарий только один раз более тщательно, и вы поймете. –