Получить количество повторений слов в тексте ?
Бирюков Павел Владимирович
2 уровень
Получить количество повторений слов в тексте ?
Обсуждается
Комментарии (11)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Бирюков Павел Владимирович
24 апреля 2020, 16:41
Все это понятно! я это все прекрасно понимаю. Теория мертва без практики. Нужен пример!
0
Стас ПасинковSoftware Developer в ZipyMaster
24 апреля 2020, 12:19
если у вас текст дан одной строкой - тогда вам надо разделить эту строку по пробелам
дальше циклом перебирать все эти коротенькие строки (слова)
сначала удаляем из строки, которую сейчас обрабатываем точки, запятые, двоеточия
потом пропускаем пустые строки (такое может быть если было два пробела подряд)
ну а дальше например складываем в мапу, где ключ будет само слово, а значение - количество его повторений (если слова еще нет в мапе - добавляем его с количеством 1, а если слово ежу есть в мапе - тогда добавляем его с количеством увеличенным на 1)
в итоге у вас в мапе окажутся пары: слово - количество его повторений в тексте
0
Бирюков Павел Владимирович
24 апреля 2020, 10:04
На подобии этой работы, только здесь символы - буквы выводятся, а нужны слова:
package control2;
/**
* 1. Дан текст найти количество повторений всех символов.
*/
public class Cont1 {
public static void main(String[] args) {
String text = "Над ним не было ничего уже, кроме неба, - высокого неба, не ясного, но все-таки неизмеримо высокого, " +
"с тихо ползущими по нём серыми облаками. \"Как тихо, спокойно и торжественно, совсем не так, как я бежал, - " +
"подумал князь Андрей, - не так, как мы бежали, кричали и дрались, совсем не так, как с озлобленными и испуганными " +
"лицами тащили друг у друга банник француз и артиллерист, - совсем не так ползут облака по этому высокому бесконечному небу. " +
"Как же я не видал прежде этого высокого неба? И как я счастлив, что узнал его наконец. Да! Все пустое, все обман, кроме этого " +
"бесконечного неба. Ничего, ничего нет, кроме его. Но и того даже нет, ничего нет, кроме тишины, успокоения. И слава богу!";
String symbols = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
text = text.replaceAll(",", "");
text = text.replaceAll("-", "");
text = text.replaceAll("!", "");
text = text.replaceAll("\\.", "");
text = text.replaceAll("\\?", "");
text = text.replaceAll(",", "");
System.out.println(text);
int count = 0;
int n = 0;
while (n < symbols.length()) {
int m = 0;
while (m < text.length()) {
if (symbols.charAt(n) == text.charAt(m))
count++;
m++;
}
System.out.println("Количество " + symbols.charAt(n) + ": " + count);
n++;
}
}
}
0
Бирюков Павел Владимирович
24 апреля 2020, 09:19
На примере, если бы показали наглядно, чтобы видеть процесс, так как теория мертва без практики!
0
Бирюков Павел Владимирович
24 апреля 2020, 09:15
Если вот так делать, то получается:
package control2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 3. Получить количество повторений слов в тексте.
*/
public class Cont3 {
public static void main(String[] args) {
// На экране будет 5 цифра повторений "было"
ArrayList<String> repet1 = new ArrayList<>();
Collections.addAll(repet1,"Над", "ним", "не", "было", "ничего", "уже", "кроме", "неба","было","было","было","было");
int count3 = Collections.frequency(repet1,"было");
System.out.println(count3);
}
}
0
Бирюков Павел Владимирович
24 апреля 2020, 09:15
Если вставляю следующий код, то компилятор не пропускает его:
mylist = mylist.replaceAll("!", "");
mylist = mylist.replaceAll("\\?", "");
mylist = mylist.replaceAll("\\.", "");
mylist = mylist.replaceAll(",", "");
mylist = mylist.replaceAll("-", "");
0
Бирюков Павел Владимирович
24 апреля 2020, 09:15
А если вот так делать, то не понятно, что получается:
package control2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 3. Получить количество повторений слов в тексте.
*/
public class Cont3 {
public static void main(String[] args) {
List<String> mylist = new ArrayList<String>(Collections.singleton("Над ним не было ничего уже, кроме неба, - высокого неба, не ясного, но все-таки неизмеримо высокого, " +
"с тихо ползущими по нём серыми облаками. \"Как тихо, спокойно и торжественно, совсем не так, как я бежал, - " +
"подумал князь Андрей, - не так, как мы бежали, кричали и дрались, совсем не так, как с озлобленными и испуганными " +
"лицами тащили друг у друга банник француз и артиллерист, - совсем не так ползут облака по этому высокому бесконечному небу. " +
"Как же я не видал прежде этого высокого неба? И как я счастлив, что узнал его наконец. Да! Все пустое, все обман, кроме этого " +
"бесконечного неба. Ничего, ничего нет, кроме его. Но и того даже нет, ничего нет, кроме тишины, успокоения. И слава богу!".split(" ")));
String[] repet = {"Над", "ним", "не", "было", "ничего", "уже", "кроме", "неба", "высокого", "ясного", "но", "все", "таки", "неизмеримо",
"тихо", "ползущими", "по", "нём", "серыми", "облаками", "Как", "спокойно", "торжественно", "совсем", "так", "как", "бежал", "подумал","нет"};
for (int i = 0; i < repet.length; i++) {
int counts = 0;
for (int j = 0; j < mylist.size(); j++) {
if (repet.equals(mylist))
counts++;
}
System.out.println("Гласные буквы " + repet + ":" + counts);
}
}
}
0
Бирюков Павел Владимирович
24 апреля 2020, 09:11
Написать легко, если бы пример наглядно видеть!
0
JustinianJudge в Mega City OneMaster
24 апреля 2020, 11:27
задавать вопросы тоже легко, кто и где дал тебе это задание?
0
Павел Дудров
23 апреля 2020, 20:17
распарсить текст на слова
собрать их в лист
создать HashMap<cлово,частота>
пробежаться по листу выполняя Collections.frequency(item,list) и добавляя в карту
получите карту слов с частотами
0
Бирюков Павел Владимирович
23 апреля 2020, 16:07
Получить количество повторений слов в тексте ?
0