Java строки гласные буквы

Выделить и разделить из введенной строки символы на гласные и согласные

В процессе решения в качестве практики (делал для себя) получил такой вариант, вроде как рабочий. Но кажется, код вышел довольно большим. Можно его как-нибудь укоротить? И что лучше использовать в данном случае: String с плюсами или StringBuilder с append’ом? Выиграю ли я что-нибудь от билдера?

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 61
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Vowels { public static char [] ruVowels = {'а', 'у','о', 'ы', 'и', 'э', 'я', 'ю', 'ё', 'е'}; public static char [] engVowels = {'a', 'e', 'i', 'o', 'y', 'u'}; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Выберите язык: ru или eng."); String line = br.readLine(); System.out.println("Введите строку:"); String toFix = br.readLine(); if(line.equals("ru")) ruSymbols(toFix); else if (line.equals("eng")) engSymbols(toFix); } public static void ruSymbols(String toFix){ StringBuilder s1 = new StringBuilder(); //для гласных StringBuilder s2 = new StringBuilder(); //для согласных for (int i = 0; i  toFix.length(); i++){ if (isRuVowel(toFix.charAt(i))){ s1.append(toFix.charAt(i)).append(" "); } else if (!(toFix.charAt(i)==' ')){ s2.append(toFix.charAt(i)).append(" "); } } System.out.println(s1.append("\n").append(s2)); } public static void engSymbols(String toFix){ StringBuilder s3 = new StringBuilder(); StringBuilder s4 = new StringBuilder(); for (int i = 0; i  toFix.length(); i++){ if (isEngVowel(toFix.charAt(i))){ s3.append(toFix.charAt(i)).append(" "); } else if (!(toFix.charAt(i)==' ')){ s4.append(toFix.charAt(i)).append(" "); } } System.out.println(s3.append("\n").append(s4)); } public static boolean isRuVowel(char symbol){ symbol = Character.toLowerCase(symbol); for (char digits : ruVowels){ if (symbol==digits) return true; } return false; } public static boolean isEngVowel(char symbol){ symbol = Character.toLowerCase(symbol); for (char digits : engVowels){ if (symbol==digits) return true; } return false; } }

Источник

Считать гласные в строке в Java

Я хочу посчитать гласные в каждом слове в строке и вывести количество гласных для каждого слова. Я просто знаю, как считать все гласные в строке, и я попробовал это. Но я хочу количество гласных для каждого слова. Как я могу напечатать это?

String s="hai hello"; int count=0; for(int i=0;i System.out.println(count); 

Если вход «привет», то ожидаемый результат будет «1 2».

9 ответов

Вы можете использовать регулярные выражения для этого.

String string = "hai hello"; String[] wordAr = string.split(" "); for (String s : wordAr)

(? i) сделает символ без учета регистра

String result = Arrays.asList(string.split(" ")).stream().map(s -> countVowel(s)) .collect(Collectors.joining(" ")); 

где countVowel возвращает nr гласных в строке (см. ответ «pantha istiaque»), чтобы получить весь результат

Я пытаюсь решить вашу проблему

 String string = "hai hello"; String[] wordAr = string.split(" "); int count = 0; for (String s : wordAr) < for (int i = 0; i < s.length(); i++) < if (s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o' || s.charAt(i) == 'u') < count++; >> System.out.print(count + "\t"); count = 0; > 
public static Map countVowelsByWords(String str) < Mapmap = new HashMap<>(); Arrays.stream(str.toLowerCase().split("[^a-z]+")) .distinct() .forEach(word -> < int count = 0; for (int i = 0; i < word.length(); i++) < char ch = word.charAt(i); if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') count++; >map.put(word, count); >); return map; > 
String str="hello"; long count = str.chars().filter((x) -> < return (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u'); >).count(); System.out.println("count. "+count); 

Вы можете считать гласные с помощью java 8:

 String str="a quick brown fox jumps over a lazy dog"; List vowels=Arrays.asList('a', 'e', 'i', 'o', 'u'); Long vowelCount = str.chars().filter(c -> vowels.contains((char) c)).count(); 

Вы можете использовать условие в ваших циклах:

он будет печатать и устанавливать ноль каждый раз, когда вы видите бланк.

Просто чтобы показать еще одну простую концепцию. Используйте метод String#replaceAll() с регулярным выражением (RegEx) для подсчета количества гласных в слове или строке.

Регулярное выражение ( «(?i)[^aeiou]» ), используемый в методе String#replaceAll(), в основном указывает методу на замену всех символов пустой строкой («»), которая не является a, e, i, o или u, независимо от регистра букв. Затем мы берем оставшееся количество символов (которые будут всеми гласными) в качестве числа для числа гласных в слове или строке, поскольку они были единственными символами, которые не были заменены:

String a = "This sentence has vowels"; int vowelCount = 0; String[] words = a.split("\\s+"); for (int i = 0; i

Вывод на консоль будет выглядеть так:

Word #1 [This] contains 1 vowels. Word #2 [sentence] contains 3 vowels. Word #3 [has] contains 1 vowels. Word #4 [vowels] contains 2 vowels. 

Источник

Maxskaz / Гласные и согласные com.javarush.task.task09.task0923.java

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package com . javarush . task . task09 . task0923 ;
import java . io . BufferedReader ;
import java . io . InputStreamReader ;
import java . util . ArrayList ;
/*
Гласные и согласные com.javarush.task.task09.task0923 Solution
Написать программу, которая вводит с клавиатуры строку текста.
Программа должна вывести на экран две строки:
1. первая строка содержит только гласные буквы из введённой строки.
2. вторая — только согласные буквы и знаки препинания из введённой строки.
Буквы соединять пробелом, каждая строка должна заканчиваться пробелом.
Пример ввода:
Мама мыла раму.
Пример вывода:
а а ы а а у
М м м л р м .
Требования:
1. Программа должна считывать данные с клавиатуры.
2. Программа должна выводить две строки.
3. Первая строка должна содержать только гласные буквы из введенной строки, разделенные пробелом.
4. Вторая строка должна содержать только согласные и знаки препинания из введенной строки, разделенные пробелом.
5. Каждая строка должна заканчиваться пробелом.
*/
public class Solution
public static char [] vowels = new char []< 'а' , 'я' , 'у' , 'ю' , 'и' , 'ы' , 'э' , 'е' , 'о' , 'ё' >;
public static void main ( String [] args ) throws Exception
BufferedReader reader = new BufferedReader ( new InputStreamReader ( System . in ));
char [] chArr = reader . readLine (). toCharArray (); //создаем массив, куда поместим строку считанную с консоли,которую переводим в char
ArrayList < Character >listVow = new ArrayList < Character >(); //список для гласных
ArrayList < Character >listNVow = new ArrayList < Character >(); //список для негласных
for ( int i = 0 ; i < chArr . length ; i ++) < //бежим по массиву
if ( isVowel ( chArr [ i ])) < //проверяем условие методом isVowel если текуший символ гласная
listVow . add ( chArr [ i ]); //помещаем гласную в свой список
> else if ( chArr [ i ] == ‘ ‘ ) < // проверяем есть ли пробел, и пропускаем его
continue ;
> else
listNVow . add ( chArr [ i ]); //остальные буквы или другие символы(точка например), помещаем в свой список
>
>
for ( char c : listVow ) < //бежим по списку, в который положили гласные
System . out . print ( c + » » ); //выводи гланые на экран, не забываем пробел между ними
>
System . out . println (); // переводим курсов на другую строчку
for ( char c : listNVow ) < //бежим по списку согласных
System . out . print ( c + » » ); //выводим на экран все остальные символы, через пробел
>
>
// метод проверяет, гласная ли буква
public static boolean isVowel ( char c )
c = Character . toLowerCase ( c ); // приводим символ в нижний регистр — от заглавных к строчным буквам
for ( char d : vowels ) // ищем среди массива гласных
if ( c == d )
return true ;
>
return false ;
>
>

Источник

Вывести гласные буквы из слова

Задача: Нужно вывести гласные буквы из слова
Пример: У нас есть массив слов , массив можем задать в коде сами
И нужно что бы вывелось: A A a i o, a o o u a, a a a.

Все ли гласные буквы слова Х, стоящие на нечетных местах, различны
Составьте программу, выясняющую, все ли гласные буквы слова Х, стоящие на нечетных местах, различны.

Выбрать все слова из строки начинающиеся на гласные буквы и заканчивающиеся на согласные
Необходимо выбрать все слова из строки начинающиеся на гласные буквы и заканчивающиеся на.

Распечатать слова, в которых есть гласные буквы
Дан текстовый файл распечатать слова, в которых есть гласные буквы.

Эксперт PythonЭксперт Java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
public class Main { public static void main(String[] args) { String[] strArr = {"ASFSAFaio", "safssooua", "aaggass"}; for (String aStrArr : strArr) { for (int j = 0; j  aStrArr.length(); j++) { switch (aStrArr.charAt(j)) { case 'a': case 'e': case 'i': case 'o': case 'u': case 'y': case 'A': case 'E': case 'I': case 'O': case 'U': case 'Y': System.out.print(" " + aStrArr.charAt(j)); } } } } }
1 2 3 4 5 6 7 8 9 10 11 12
public static void main(String[] args) { String[] strArr = {"ASFSAFaio", "safsUooua", "aagAgOass"}; StringBuilder resBox = new StringBuilder(); for (String tmpWord : strArr) { for (char wordChar : tmpWord.toCharArray()) { if ("AEIOUaeiou".indexOf(wordChar) != -1) { resBox.append(wordChar); } } } System.out.print(resBox); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
import java.util.ArrayList; public class CyberChar { public static void main(String[] args) { String[] strArr = {"ASFSAFaio", "safssooua", "aagAgaOss"}; ArrayListCharacter> resBox = new ArrayList<>(1); for (String tmpWord : strArr) { for (char wordChar : tmpWord.toCharArray()) { if ("AEIOUaeiou".indexOf(wordChar) != -1) { if (Character.isUpperCase(wordChar)) resBox.add(0, wordChar); else resBox.add(resBox.size(), wordChar); } } } System.out.print(resBox); } }

Источник

Подсчёт гласных и согласных

Сравнить колличество гласных и согласных в тексте
Постоянно показывает что согласных больше package com.company; import java.io.*; public.

Найти количество слов с равным количеством гласных и согласных
Доброго времени суток! Прошу помочь с решением простых задач 4.Напишите программу на языке.

Подсчет гласных в нескольких строках
Здравствуйте! Суть задачи в том, чтобы посчитать количество гласных в каждой строке (первым числом.

Подсчет числа гласных букв
Составьте программу подсчета числа тех гласных букв в слове Х, что не используются в написании.

Эксперт PythonЭксперт Java

System.out.println("Vovels: " + vowels.size()); System.out.println("Notvovels: " + notvowels.size());
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
public static void main(String[] args) { Scanner input = new Scanner(System.in); String box = input.nextLine(); int charCount = 0; String vowels = "aeiou"; int counVow = 0; for (char charBox : box.toLowerCase().toCharArray()) { if (Character.isLetter(charBox)) { charCount++; if (vowels.indexOf(charBox) != -1) counVow++; } } System.out.printf("Гласных = %d;%nСогласных = %d", counVow, charCount - counVow); }
Java, created by Sun Microsystems in the year 1995. Гласных = 13; Согласных = 24

Подсчет количества гласных в строке
Помогите разобраться, программа подсчитывает количество гласных в каждой отдельной введенной.

Подсчет гласных букв, после которых следует согласная буква
Составьте программу подсчета числа гласных букв в слове Х, после которых следует согласная буква.

Подсчёт гласных и согласных в модуле
Напишите программу, использующую модуль, в котором описаны 2 процедуры: первая подсчитывает в.

Подсчет гласных и согласных букв
Здравствуйте уважаемые программисты. Задача состоит в том чтобы под считать гласные и согласные.

Источник

Читайте также:  Emoji telegram bot php
Оцените статью