Как лучше всего ето реализовать? | Java
Есть задание, нужно сделать все на java
Ввести текст и целое число - длину слова. Из текста удалить все слова указанной длины, начинающихся на согласную букву. Вывести начальную строку и строку после обработки.
(
package com.company;
import static java.lang.System.*;
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
String txt = new String();
Scanner scann = new Scanner(in);
out.print("Enter text here: ");
txt = scann.nextLine();
int lim = 0;
out.print("Enter word limit: ");
lim = scann.nextInt();
String[] s = txt.split(" ");
ArrayList<Character> arr = new ArrayList <Character>();
arr.add('а');
arr.add('о');
arr.add('у');
arr.add('и');
arr.add('і');
arr.add('е');
for ( int i = 0; i<arr.size()-1; i++)
if (s[i].charAt(0) != arr.size())
if (s[i].length() >= lim)
s[i].replaceAll(s[i], " ");
out.println("Original: ");
out.println(txt);
out.printf("After changes: ");
out.printf(String.valueOf(s));
}
}
)
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
Попробуйте так и , если что-то непонятно, задавайте вопрос:
import java.util.Scanner;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
public class Main {
private final static Set<String> VOWELS = Arrays.stream("аоуиеыэїі".split("")).collect(Collectors.toSet());
public static void main(String[] args) {
Scanner scann = new Scanner(System.in);
print("Enter text here: ");
String txt = scann.nextLine();
print("Enter word limit: ");
int length = scann.nextInt();
String result = Arrays.stream(txt.split(" "))
.filter(word -> !(word.length() == length && !VOWELS.contains(word.substring(0, 1))))
.collect(Collectors.joining(" "));
print("Original: ", txt, "After changes: ", result);
}
private static void print(String...args) {
Arrays.stream(args).forEachOrdered(System.out::println);
}
}