Нужно написать программу, которая в введенной пользователем строке заменяет все четные числа на соответствующее количество знаков +, нечетные числа - на соответствующее количество знаков -, а буквы h на слово hello.
Задача представляет собой интерес, как пример однопроходного парсера
StringBuilder finalizeNum(StringBuilder src, StringBuilder dst) {
int len = src.length();
if (len > 0) {
byte lastNum = Byte.parseByte(String.valueOf(src.charAt(len - 1)));
char filler = (lastNum % 2 == 0) ? '+' : '-';
char[] pad = new char[len];
Arrays.fill(pad, filler);
dst.append(pad);
src.setLength(0);
}
return dst;
}
String convert(String str) {
StringBuilder res = new StringBuilder();
StringBuilder num = new StringBuilder();
boolean word = false;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
switch (ch) {
case ' ':
finalizeNum(num, res).append(ch);
word = false;
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
if (!word || num.length() > 0)
num.append(ch);
else
res.append(ch);
word = true;
break;
case 'h':
res.append(num).append("hello");
num.setLength(0);
word = true;
break;
default:
res.append(num).append(ch);
num.setLength(0);
word = true;
}
}
return finalizeNum(num, res).toString();
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости