Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/65: Рейтинг темы: голосов - 65, средняя оценка - 4.82
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113

Замена маленьких букв на большие

01.09.2015, 20:52. Показов 12467. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Нуждаюсь в помощи. Программа работает, но не так как нужно.

Задача : Вводим строку вручную. Программа заменяет в тексте первые буквы всех слов на заглавные и после этого выводит новую строку на экран.

Пример ввода:
мама мыла раму.

Пример вывода:
Мама Мыла Раму.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine(); //считываем строку из консоли
 
        for (int i = 0; i < s.length(); i++) {
            if ((String.valueOf(s.charAt(i)).compareTo(" ") == 0) 
                     && (((int)s.charAt(i+1) >= 97) || ((int)s.charAt(i+1) <= 122))) 
        //если первый символ пробел и следующий является маленькой буквой (тут проблема, так как вторую
        //часть после && программа игнорит). Использовал ASCII
            {
                char my = s.charAt(i+1); //наша буква
                char myNew = (char)((int)my-32); //изменяем ее на большую. Берем это через ASCII код
                s = s.replace(my, myNew); //заменяем старую букву на новую
            }
        }
        System.out.println(s); //выводим новую строку на экран
    }
Проблема1: Если вначале первая буква уже заглавная, то ее тоже меняет
Проблема2: Если стоит два пробела, а потом слово с маленькой, то его не меняет

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2015, 20:52
Ответы с готовыми решениями:

Замена букв с маленьких в большие
Написать функцию заменяющую в переданной ей строке все маленькими буквами в большие.

Замена маленьких букв на большие, считанных с файла
Имею код замены строки маленьких символов на строку с большими символами. Не получается сделать чтобы строка считывалась с файла(а не...

Смена маленьких букв на большие
Кто знает как менять маленькие буквы на большие.То есть ввели фамилию имя в строку и оно поменяло на следущую строку все маленькие буквы на...

4
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
01.09.2015, 21:18
Лучший ответ Сообщение было отмечено Donville как решение

Решение

можно конечно и по твоему, но можно и попроще, вот такой например вариант
Java
1
2
3
4
5
6
7
8
9
10
Scanner scan = new Scanner(System.in); // так проще
        String reader = scan.nextLine();
        String[] tokens = reader.split(" "); // разделяем слова по пробелу
        for (int i=0; i<tokens.length; i++) {
            if (tokens[i].length()>0) { //если это не пустое слово
                String firstLetter  = tokens[i].substring(0,1).toUpperCase(); //берем первую букву и делаем заглавной
                tokens[i] = firstLetter+tokens[i].substring(1); //вставляем большую букву
            }
            System.out.print(tokens[i] + " ");
        }
1
0 / 0 / 1
Регистрация: 16.02.2014
Сообщений: 113
01.09.2015, 21:32  [ТС]
Welemir1, Спасибо за совет, но мне для успеха осталось понять почему программа считывает слова с заглавной буквы тоже
0
 Аватар для Monty_Python
8 / 8 / 6
Регистрация: 31.07.2015
Сообщений: 39
02.09.2015, 03:33
Цитата Сообщение от Donville Посмотреть сообщение
осталось понять почему программа считывает слова с заглавной буквы тоже
сейчас старайся не паниковать... Программа ещё считывает числа.
Другой вопрос что она должна с ними делать - переводить в заглавную букву, либо оставлять такими как есть?!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
03.09.2015, 11:39
Думал, что всё просто, а не тут-то было!
Вот так можно удвоить первую букву в каждом слове:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Scanner;
 
public class UpFirstChar {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        while ( true ) {
            System.out.print("String: ");
            String s = scanner.nextLine();
            if ( "".equals(s) )
                break;
            
            s = s.replaceAll("\\b(\\w)", "$1$1");
            System.out.println("Result: " + s);
        }
    }
}
а всякие
Java
1
"$1".toUpperCase()
или
Java
1
String.valueOf("$1").toUpperCase()
не работают, хоть убейся. Может знает кто, как из этих бекреференсов профит вымутить?
На PERL и в правду всё просто:
Perl
1
2
3
4
5
6
#!/usr/bin/perl
 
while (<>) {
    s/\b(\w)/uc($1)/ge;
    print;
}
а тут никак
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.09.2015, 11:39
Помогаю со студенческими работами здесь

Преобразование маленьких русских букв в большие
Может кто-то пояснить построчно программу?code segment assume cs:code, ds:data, ss: stek start: mov ax,data mov ds,ax ...

Изменение маленьких букв на большие и наоборот
Задача: Написать на языке ассемблер com-программу, которая выведет на экран &quot;Input string&quot;. После введения строки необходимо все...

Изменение маленьких букв на большие и наоборот
Задача: Написать на языке ассемблер exe-программу, которая выведет на экран &quot;Input string&quot;. После введения строки необходимо все...

Словов из маленьких букв перевести в заглавные (большие) буквы
Господа-товарищи, есть программа (ниже код), которая осуществляет поиск введенного с клавиатуры слова, как в этом слове заменить маленькие...

Функция для перевода маленьких букв в большие и наоборот
Нужна Функция для перевода маленьких букв в большие и наоборот.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru