Омовение Рамы

  • 10
  • Недоступна
Когда-то жил и правил легендарный древнеиндийский царь Рама. И, вероятно, была та, которая его родила. Не факт, что она мыла его самостоятельно (царица всё-таки), но да простят нам знатоки эту невинную историческую фантазию. Напишем программу, которая заменит текст «мама мыла раму» на «Мама Мыла Раму».
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (304)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Павел Минеев13 уровень, Челябинск
понедельник, 19:02
Долго думал пока не вспомнил про substring.
Колян Мельников9 уровень, Минск
воскресенье, 21:24
решил с первой попытки, но пришлось сразу поискать подробную инфу про тип данных Char и его класс Character. в принципе не сложно.....
Сергей11 уровень, Екатеринбург
суббота, 08:12
Создал переменную результата, в цикле получаю очередную букву и предыдущую букву: если очередная не равна пробелу, а предыдущая равна пробелу - добавляю к результату очередную в верхнем регистре.
Oleg Yev11 уровень, Минск
6 августа, 15:07
Раз уж тут по-любому никак не решить на базе пройденного материала и приходится гуглить, ИМХО можно не считать читерством обращение к этому методу и этому regex'у для игнора пробелов, вокруг которых и мутится вся "лишняя" движуха.
ДМИТРИЙ10 уровень, Белгород
6 августа, 10:03
Читаю обсуждения и складывается ощущение. что половина здесь, это выпускники Бауманки. Такие решения предлагают, что глаз дергается. Я человек земной, и тяжелых построений массивов из символов, подсчетов пробелов и подобной хренью не занимался. Split() - конечно, substring() - естественно. А дальше все просто. Если следующий элемент есть ноль, то ничего не делаем. если не ноль пишем слово с заглавной буквы. Усе. Со Сплитом это работает легко. Если есть сомнения, поставьте тысяча пробелов между словами, поделите сплитом, а после каждое выводите с новой строки)))))) нашли концовку вывода?????)))). Думаю код напишите сами, и предлагаю больше не кататься на велосипеде с квадратными колесами, а использовать только то, что уже проходили. Это - ну самый простой способ. Спасибо!!
Diego's DARK side10 уровень, Москва
2 августа, 18:53
Хорошая задача)
Николай Дудин9 уровень, Йошкар-Ола
24 июля, 13:56
Здрасьте ребята, решил задачу и возник вопрос. Сначала метод решения: 1. Разбил строку методом split("\\s"). Т.е по пробелам. Загнал ее в список. 2. До конца списка кручу цикл, получаю элементы и проверяю на условие
if (arrayString.equals(""))
      System.out.print(arrayString);
Иначе беру первый символ substring(0, 1) и делаю его заглавным. Собственно сам вопрос, в условии я прописал .equals(""). Но это пустая строка, а если я пропишу пробел, т.е equals(" "), т.е то что split() разбил до этого (если были множественные пробелы) то программа падает String index out of range: 1 Т.е такое условие получается верным: если " " равен по значению "" то выводим " ". Я что то не понимаю? Подскажите пожалуйста)
Николай Дудин9 уровень, Йошкар-Ола
24 июля, 14:02
Я походу понял, делит по пробелу, но разделитель не записывает в список, поэтому там остается пустая строка?!
Николай Дудин9 уровень, Йошкар-Ола
24 июля, 14:03
Вот у меня всегда так, пока у других не спрошу - сам не пойму...
Иван Захаров13 уровень, Санкт-Петербург
9 июля, 17:46
Выполнил так: 1) создал массив char [] ch и присвоил конвертированный string в char (string.toCharArray()), 2) циклом от i=0 ; i < char.length; i++ перебираю элементы Проверяю, что если (i > 0 и char[i-1] == ' ' или i == 0, то присваиваю ch[i]=Character.toUpperCase(ch[i]) 3) Присваиваем новой string переменной ch 4) Выводим результат
NomakAnton9 уровень, Казань
30 июля, 08:05
Решил так же)
Юрий20 уровень, Казань
7 июля, 10:34
Я выполнил задачу с помощью substring. 1. Создал пустую строку str2. 2. Первую букву из str1 сразу сделать заглавной и добавил в str2. 3. По условию проверил string.substring(i - 1, i).equals(" ") 4. Если есть совпадения то ту букву делаем заглавной и добавляем в str2 5. Если нет то просто добавляем в str2
Artur20 уровень
24 июня, 13:47
Разбил строку на массив методом toCharArray, потом сразу: chArray[0] = Character.toUpperCase(chArray[0]); потом в цикле: if (chArray[i] == ' ') chArray[i + 1] = Character.toUpperCase(chArray[i + 1]); 5 строчек кода + распечатал массив System.out.println(chArray); Это я к тому, что массивы в некоторых ситуациях тоже неплохо рулят ))
Владимир Созанский19 уровень, Одесса
25 июня, 10:54
Спасибо за рекомендацию.
Андрюха19 уровень
27 июня, 03:06
спасибо за избавление от гугления=))
Aleksandr Liadov14 уровень, Самара
7 июля, 12:40
сделал флаг boolean которому присвоил при создании true, таким образом первый элемент chArray[0] становится Upper. цикл: - проверяется флаг (увеличивать символ? если да, то увеличиваем, флаг выставляем в false иначе символ остаётся маленьким) - проверка (Это пробел? если да, то флаг = true)