Считать из файла текст, разбить его на предложение. Вывести в другой файл те предложения, которые имеют более 50 знаков (учитывая пробелы и знаки препинания).
artem kirpickov
6 уровень
Помогите
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
27 апреля 2022, 09:36
Что вызывает трудности?
0
artem kirpickov
27 апреля 2022, 10:45
Я чутка не понимаю как разбить текст на предожения и определить какие предложения больше 50 символов
0
artem kirpickov
27 апреля 2022, 10:55
вот примерно что я сделал а дальше застыл
FileReader fr=new FileReader("D:\\test.txt");
BufferedReader br=new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
String s;
while((s=br.readLine())!=null) {
sb.append(s+" ");
}
s=sb.toString();
StringTokenizer st = new StringTokenizer(s," .?,");
0
hidden #598481
27 апреля 2022, 11:03
Так вроде бы всё правильно делаешь, почему застыл?
Ну разбить можно сплитом, токенайзером, сканером. Предложения могут заканчиваться точкой, знаком вопроса или восклицательным. Ещё можно допустить многоточие. Предложения с прямой речью, где внутри прямой речи есть несколько предложений, я думаю, можно не учитывать, слишком сложно.
Вроде должно работать. 0
KIRAExpert
27 апреля 2022, 11:50
Немного дополню регулярное выражение.
split() не возвращает разделитель и если он нужен вы можете использовать ретроспективный поиск.
Ищем пробел или конец строки перед которым идет знак, но не захватываем знак
0
artem kirpickov
27 апреля 2022, 15:15
Работает токо, вот такой еще один вопросик я не знаю как узнать что предложение имеет больше 50 знаков пробовал вот так
String[] sentences = s.split("[.?!]+");
for(int i = 0;i< sentences.length ; i++){
if(sentences[i].length>50)
но так не работает
0
artem kirpickov
27 апреля 2022, 16:49
Работает токо вот такой еще один вопросик я не знаю как узнать что предложение имеет больше 50 знаков пробовал вот так
String[] sentences = s.split("[.?!]+");
for(int i = 0;i< sentences.length ; i++){
if(sentences[i].length>50)
но так не работает
0
KIRAExpert
27 апреля 2022, 16:55решение
if(sentences[i].length()>50) - скобки потеряли
+2