Нужно написать программу, которая вводит строку и находит все слова указанной длины n (n вводится).
Если можно, то покажите хотя бы пример, какую-нибудь подобную программу. Я только учусь работать в Java, поэтому для меня пока что затруднительно решать такие задачки
Java
Работа со строками Java Разработать программу, которая вводит строку и находит все слова указанной длины n (n вводится).
Почти всё правильно, поздравляю, пара мелких синтаксических огрехов, которые почти не всчёт:
1)
String w = scan.nextLine(); - надо заменить на:
Integer w = scan.nextInt(); - вам же число надо, длинну строки мерять а не сравнить один текст с другим.
2)
Arrays.stream(string.split(\\s+)).filter(w->w.length==n).collect(toList()); - это очень хорошо и конструкция замечательная, я реально наверное год грыз бамбук прежде чем у меня получилось такие крокодилы нормально использовать, и всё в нем хорошо кроме одного маааленького момента, вот оно все посчитало, собрало и... и все, а его записать бы в переменную, ну типа так:
List filtered=<крокодил>
А потом уже:
System.out.print(filtered);
3)
Внутри крокодила: Arrays.stream(string.split(\\s+)).filter(w->w.length==n).collect(toList()); часть с: [ .filter(w->w.length==n) ]
В вашем коде нет переменной n, которая характеризует длину искомого слова, у вас была строка w...
Правильный вариант этой части будет выглядеть так:
filter(word->word.length()==w)
4)
Типично синтаксический огрех:
public static void main (String [] args);
{
...
код
...
}
Всё после строки [public static void main (String [] args);] - будет проигнорировано, изза ";" в конце, уберите её, а то джава думает что вы объявили пустой метод, бесится и не вкуривает что за хрень в скобках идет после.
Вобщем после всех перепитий конечный вариант должен выглядеть как-то так:
public static void main (String [] args)
{
System.out.println("Введите строку");
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
System.out.println("Введите длину слова");
Integer w = scan.nextInt();
String[] splitted=s.split("\\s+");
List filtered=Arrays.stream(splitted).filter(word->word.length()==w).collect(Collectors.toList());
System.out.print(filtered);
}

1)
String w = scan.nextLine(); - надо заменить на:
Integer w = scan.nextInt(); - вам же число надо, длинну строки мерять а не сравнить один текст с другим.
2)
Arrays.stream(string.split(\\s+)).filter(w->w.length==n).collect(toList()); - это очень хорошо и конструкция замечательная, я реально наверное год грыз бамбук прежде чем у меня получилось такие крокодилы нормально использовать, и всё в нем хорошо кроме одного маааленького момента, вот оно все посчитало, собрало и... и все, а его записать бы в переменную, ну типа так:
List filtered=<крокодил>
А потом уже:
System.out.print(filtered);
3)
Внутри крокодила: Arrays.stream(string.split(\\s+)).filter(w->w.length==n).collect(toList()); часть с: [ .filter(w->w.length==n) ]
В вашем коде нет переменной n, которая характеризует длину искомого слова, у вас была строка w...
Правильный вариант этой части будет выглядеть так:
filter(word->word.length()==w)
4)
Типично синтаксический огрех:
public static void main (String [] args);
{
...
код
...
}
Всё после строки [public static void main (String [] args);] - будет проигнорировано, изза ";" в конце, уберите её, а то джава думает что вы объявили пустой метод, бесится и не вкуривает что за хрень в скобках идет после.
Вобщем после всех перепитий конечный вариант должен выглядеть как-то так:
public static void main (String [] args)
{
System.out.println("Введите строку");
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
System.out.println("Введите длину слова");
Integer w = scan.nextInt();
String[] splitted=s.split("\\s+");
List filtered=Arrays.stream(splitted).filter(word->word.length()==w).collect(Collectors.toList());
System.out.print(filtered);
}

java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("String: ");
String a = s.nextLine();
System.out.print("Length: ");
int c = s.nextInt();
String[] b = a.split(" ");
String out = "[";
for (int i = 0; i < b.length; i++)
if (b[i].length() == c)
out += b[i] + ", ";
out = out.substring(0, out.length() - 2);
out += "]";
System.out.println(out);
s.close();
Когда появляется String: вводите стоку, когда Length: вводите длину слова. Потом показывает красивенький ответ в виде [11, 12, 15, aa]
System.out.print("String: ");
String a = s.nextLine();
System.out.print("Length: ");
int c = s.nextInt();
String[] b = a.split(" ");
String out = "[";
for (int i = 0; i < b.length; i++)
if (b[i].length() == c)
out += b[i] + ", ";
out = out.substring(0, out.length() - 2);
out += "]";
System.out.println(out);
s.close();
Когда появляется String: вводите стоку, когда Length: вводите длину слова. Потом показывает красивенький ответ в виде [11, 12, 15, aa]
дам намек функция split вам в помощь
Похожие вопросы
- Java.Комментирование. Надо прокомеентировать каждую строку этой программы.
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- JAVA, почему программа входит в бесконечный loop
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
- Как сделать так,что бы минимальный элемент каждой строки оказался в начале? Что неправильно сделала
- Как реализовать замену строки текстового файла по индексу в java
- Как создать программу (Java), чтобы была не консольной, а с интерфейсом GUI
- Помогите разобрать программу java
- Написать программу на языке java
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
import java.util.*;
public class stroka {
public static void main (String [] args);
{
System.out.println("Введите строку");
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
System.out.println("Введите длину слова");
String w = scan.nextLine();
Arrays.stream(string.split(\\s+)).filter(w->w.length==n).collect(toList());
System.out.print(n); }
}