Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/47: Рейтинг темы: голосов - 47, средняя оценка - 4.62
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452

Строка: Написать программу, которая вводит с клавиатуры строку текста.

17.06.2016, 12:50. Показов 9473. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи !

Есть такая задачка

Написать программу, которая вводит с клавиатуры строку текста.
Программа должна вывести на экран две строки:
1) первая строка содержит только гласные буквы
2) вторая - только согласные буквы и знаки препинания из введённой строки.
Символы соединять пробелом, каждая строка должна заканчиваться пробелом.

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

__________________________________

Решить решил - но как-то геморойно.

Кто предложит элегантное решение буду благодарен .

Вариант 1

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* package whatever; // don't place package name! */
 
import java.util.*;
import java.lang.*;
import java.io.*;
 
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        char a, b;
    String s = "ауоыэяюёие";             //гласные 
    BufferedReader reader  = new BufferedReader(new InputStreamReader(System.in));
    String str_1 = "", str_2 = "";
    String str = reader.readLine(); 
    for (int i=0;i<str.length();i++)
    {
        a = b = str.charAt(i);            // получить символ
        a = Character.toLowerCase(a);     // перевести в нижний регистр 
        if (s.indexOf(a) != -1)
        {
            str_1 += Character.toString(b);  // преобразовать из char в String
            str_1 += " ";
        }
        else if (a != ' ')
        {
            str_2 += Character.toString(b);  // преобразовать из char в String
            str_2 += " ";
        }
        
}
System.out.println(str_1);
System.out.println(str_2);  
    }
}
Вариант 2

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.javarush.test.level09.lesson11.home05;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
 
 
public class Solution
{
    public static void main(String[] args) throws Exception
    {
        char a;
        BufferedReader reader  = new BufferedReader(new InputStreamReader(System.in));
        String str_1 = "", str_2 = "";
        String str = reader.readLine();
        for (int i=0;i<str.length();i++)
        {
            a = str.charAt(i);            // получить символ
 
            if (isVowel(a))
            {
                str_1 += Character.toString(a);  // преобразовать из char в String
                str_1 += " ";
            }
            else if (a != ' ')
            {
                str_2 += Character.toString(a);  // преобразовать из char в String
                str_2 += " ";
            }
 
        }
        System.out.println(str_1);
        System.out.println(str_2);
    }
 
 
    public static char[] vowels = new char[]{'а', 'я', 'у', 'ю', 'и', 'ы', 'э', 'е', 'о', 'ё'};
 
    //метод проверяет, гласная ли буква
    public static boolean isVowel(char c)
    {
        c = Character.toLowerCase(c);  //приводим символ в нижний регистр - от заглавных к строчным буквам
 
        for (char d : vowels)   //ищем среди массива гласных
        {
            if (c == d)
                return true;
        }
        return false;
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2016, 12:50
Ответы с готовыми решениями:

Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на экран позиции вхождени
Задание: Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на...

Строка: Используя цепочке команды написать программу, которая считывает строку символов с клавиатуры и заменяет в нем пробелы в точки.
Помогите сделать программы (ТАСМ): 1.Используя цепочке команды написать программу, которая считывает строку символов с клавиатуры и...

Написать программу, которая вводит с клавиатуры двумерный массив
задание №26 Написать программу, которая вводит с клавиатуры двумерный массив целых чисел размером 2х3 и выводит на экран максимальный...

13
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,466
17.06.2016, 15:24
Java
1
2
3
4
5
6
7
public static void main(String[] args) {
        String s0 = "Мама мыла раму.";
        String ss = s0.replaceAll("[БВГДЖЗКЛМНПРСТФХЦЧШЩбвгджзклмнпрстфхцчшщ.,!?;:]","");
        String ss1 = s0.replaceAll("[АЯУЮИЙЫЭЕОЁаяуюийыэеоё]","");
        System.out.println(ss);
        System.out.println(ss1);
    }
Bash
1
2
аа ыа ау
Мм мл рм.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
17.06.2016, 15:36  [ТС]
Aviz__,

Цитата Сообщение от RAFA91 Посмотреть сообщение
Символы соединять пробелом, каждая строка должна заканчиваться пробелом.
почему так тоже работает

Java
1
str_1 += (b);
без явного преобразования
0
37 / 37 / 18
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
18.06.2016, 10:42
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.javarush.test.level09.lesson11.home05;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
 
/* Гласные и согласные буквы
Написать программу, которая вводит с клавиатуры строку текста.
Программа должна вывести на экран две строки:
1. первая строка содержит только гласные буквы
2. вторая - только согласные буквы и знаки препинания из введённой строки.
Буквы соединять пробелом.
Пример ввода:
Мама мыла раму.
Пример вывода:
а а ы а а у
М м м л р м .
*/
 
public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //Написать тут ваш код
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        char[] charArray = s.toCharArray();
        String vowels = "";
        String consonants = "";
 
        for (int i=0;i<charArray.length;i++) {
            if (isVowel(charArray[i])) {
               vowels = vowels + charArray[i]+ " ";
            }
            else if (charArray[i]==' ')  { continue;}
            else consonants = consonants + charArray[i] + " ";
        }
 
        System.out.println(vowels);
        System.out.println(consonants);
 
 
    }
 
 
    public static char[] vowels = new char[]{'а', 'я', 'у', 'ю', 'и', 'ы', 'э', 'е', 'о', 'ё'};
 
    //метод проверяет, гласная ли буква
    public static boolean isVowel(char c)
    {
        c = Character.toLowerCase(c);  //приводим символ в нижний регистр - от заглавных к строчным буквам
 
        for (char d : vowels)   //ищем среди массива гласных
        {
            if (c == d)
                return true;
        }
        return false;
    }
}
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
19.06.2016, 15:00
Ничего не геморойно. Регуляры как вариант.
Java
1
2
3
4
5
6
    public static void main(String[] args) {
        for (char i : "The quick brown fox jumps over the lazy dog.".replaceAll("[^aeiou]", "").toCharArray()) System.out.print(i + " ");
        System.out.println();
        for (char i : "The quick brown fox jumps over the lazy dog.".replaceAll("[aeiou\\s]", "").toCharArray()) System.out.print(i + " ");
        System.out.println();
    }
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,466
21.06.2016, 09:55

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package cyberforum;
 
public class CyberForum {
 
    public static void main(String[] args) {
        String s0 = "Мама мыла раму.";
        String ss = s0.replaceAll("[^АЯУЮИЙЫЭЕОЁаяуюийыэеоё]"," ");
        ss = ss.replaceAll("  "," ");
        String ss1 = s0.replaceAll("[АЯУЮИЙЫЭЕОЁаяуюийыэеоё]", " ");
        ss1 = ss1.replaceAll("  "," ");
        System.out.println(ss.trim() + " ");
        System.out.println(ss1.trim() + " ");
        // абвгдеёжзийклмнопрстуфхцчшщъыьэюя
    }
}
Bash
1
2
а а ы а а у 
М м м л р м .
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
21.06.2016, 11:29  [ТС]
хоть бы кто-то комментарии писало. а то выходит что код был выложен себе для галочки ))))
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,466
21.06.2016, 12:08
Цитата Сообщение от RAFA91 Посмотреть сообщение
хоть бы кто-то комментарии писал
Например?
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
21.06.2016, 12:23  [ТС]
Цитата Сообщение от Aviz__ Посмотреть сообщение
Например?

К каждой строке своей писанины желательно писать обьяснения - что ты тут собираешься делать. А иначе грош цена такому коду.
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,466
21.06.2016, 13:14
вам, батенька, не мешает самому включать мозг!
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
21.06.2016, 13:22  [ТС]
да мне как-то все равно. не собираюсь даже тратить время на этот гавнокод.
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,466
21.06.2016, 13:26
Ваше дело)). Все, что мне нужно было я взял от вашей задачки, а вы нет
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
22.06.2016, 03:36
Цитата Сообщение от RAFA91 Посмотреть сообщение
а то выходит что код был выложен себе для галочки
Нет, тут все только о том и думают, как тебе зачёт сдать, даже не сомневайся!
Кто хочет научиться - решает, как может. Кто хочет разобраться - спрашивает, что не понятно. Кто хочет халявы - требует, чтобы ему всё в лучшем виде и мёдом намазали...
Ещё код "для галочки"
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.*;
 
public class StringSplitter {
    public static final String VOWELS = "aeiouyаеёийоуыэюя";
    public static final String PUNCTS = ".,!?-:;";
    
    static boolean isVowel(char c) {
        return ( VOWELS.indexOf(Character.toLowerCase(c)) != -1 );
    }
    
    static boolean isConsontantOrPunct(char c) {
        return ( ( Character.isLetter(c) && ! isVowel(c) ) || ( PUNCTS.indexOf(c) != -1 ) );
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        while ( true ) {
            System.out.print("Строка: ");
            String s = scanner.nextLine();
            if ( "".equals(s) )
                break;
            
            StringBuilder vowels = new StringBuilder();
            StringBuilder consontants_or_puncts = new StringBuilder();
            
            for ( char c : s.toCharArray() ) {
                if ( isVowel(c) ) {
                    vowels.append(c);
                    vowels.append(' ');
                }
                else if ( isConsontantOrPunct(c) ) {
                    consontants_or_puncts.append(c);
                    consontants_or_puncts.append(' ');
                }
            }
            
            System.out.println("Гласные: " + vowels.toString());
            System.out.println("Согласные + знаки пунктуации: " + consontants_or_puncts.toString());
        }
    }
}
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
22.06.2016, 11:34  [ТС]
Цитата Сообщение от easybudda Посмотреть сообщение
как тебе зачёт сдать,
тююююююю. так я его здал и со своим примером.

я просил подкинуть идеи в технологии других реализаций - а не тупо выложить код.

мой код ведь тоже работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.06.2016, 11:34
Помогаю со студенческими работами здесь

Написать программу, которая вводит двумерный массив с клавиатуры...
1.Написать программу, которая вводит двумерный массив с клавиатуры и вычисляет среднее арифметическое его элементов. 2.Написать...

Написать программу, которая вводит с клавиатуры двумерный массив
Написать программу, которая вводит с клавиатуры двумерный массив по строкам и вычисляет среднее арифметическое его элементов.

Составить алгоритм программу, которая вводит строку текста
Составить алгоритм программу, которая вводит строку текста. Подсчитать общее количество букв “А” и “В” и заменить каждый символ “+” на...

Разработать программу, которая вводит с клавиатуры строку и выводит ее без лишних пробелов
Разработать подпрограмму, которая удаляет из строки все пробелы перед и после знака тире «-». Разработать программу, которая вводит с...

Написать программу, которая вводит по строкам с клавиатуры двумерный массив
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru