import java.util.regex.Matcher ;
import java.util.regex.Pattern ;
public class Main {
public static void main
( String [ ] args
) {
String textPoems1
= "Часов однообразный бой," + " Томительная ночи повесть!!!" +
" Язык для всех равно чужой" +
" И внятный каждому, как совесть!" ;
String textPoems2
= "Ура! мы ломим; гнутся шведы." + " О славный час! о славный вид!" +
" Еще напор - и враг бежит." +
" И следом конница" +
" Пустилась." +
" Убийством тупятся мечи," +
" И падшими вся степь" +
" Покрылась." +
" Как роем черной саранчи." ;
String textPoems3
= "Ура! мы ломим; гнутся шведы!" + " О славный час! о славный вид!" +
" Еще напор - и враг бежит." +
" И следом конница" +
" Пустилась!" +
" Убийством тупятся мечи," +
" И падшими вся степь" +
" Покрылась!!" +
" Как роем черной саранчи!" ;
String poem
= textPoems1
+ " **************** " + textPoems2
+ "********" + textPoems3
+ "****" + textPoems1
;
Pattern pattern = Pattern.compile ( "[^\\ *]+" ) ;
Pattern p = Pattern.compile ( "!+" ) ;
Matcher matcher = pattern.matcher ( poem) ;
int maxCount = - 1 ; //заведомо низкое значение
while ( matcher.find ( ) ) {
int i = 0 ;
System .
out .
println ( "Текущий стих: " + matcher.
group ( ) ) ; Matcher m = p.matcher ( matcher.group ( ) ) ;
while ( m.find ( ) ) {
i++;
}
System .
out .
println ( "Количество !: " + i
) ; if ( i > maxCount) {
maxCount = i;
maxPoem = matcher.group ( ) ;
}
}
System .
out .
println ( "Максимальный стих: " + maxPoem
) ; System .
out .
println ( "Максимальное количество !: " + maxCount
) ; }
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CnB1YmxpYyBjbGFzcyBNYWluIHsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgogICAgICAgIFN0cmluZyB0ZXh0UG9lbXMxID0gItCn0LDRgdC+0LIg0L7QtNC90L7QvtCx0YDQsNC30L3Ri9C5INCx0L7QuSwiICsKICAgICAgICAgICAgICAgICIg0KLQvtC80LjRgtC10LvRjNC90LDRjyDQvdC+0YfQuCDQv9C+0LLQtdGB0YLRjCEhISIgKwogICAgICAgICAgICAgICAgIiDQr9C30YvQuiDQtNC70Y8g0LLRgdC10YUg0YDQsNCy0L3QviDRh9GD0LbQvtC5IiArCiAgICAgICAgICAgICAgICAiINCYINCy0L3Rj9GC0L3Ri9C5INC60LDQttC00L7QvNGDLCDQutCw0Log0YHQvtCy0LXRgdGC0YwhIjsKCiAgICAgICAgU3RyaW5nIHRleHRQb2VtczIgPSAi0KPRgNCwISDQvNGLINC70L7QvNC40Lw7INCz0L3Rg9GC0YHRjyDRiNCy0LXQtNGLLiIgKwogICAgICAgICAgICAgICAgIiDQniDRgdC70LDQstC90YvQuSDRh9Cw0YEhINC+INGB0LvQsNCy0L3Ri9C5INCy0LjQtCEiICsKICAgICAgICAgICAgICAgICIg0JXRidC1INC90LDQv9C+0YAgLSDQuCDQstGA0LDQsyDQsdC10LbQuNGCLiIgKwogICAgICAgICAgICAgICAgIiDQmCDRgdC70LXQtNC+0Lwg0LrQvtC90L3QuNGG0LAiICsKICAgICAgICAgICAgICAgICIg0J/Rg9GB0YLQuNC70LDRgdGMLiIgKwogICAgICAgICAgICAgICAgIiDQo9Cx0LjQudGB0YLQstC+0Lwg0YLRg9C/0Y/RgtGB0Y8g0LzQtdGH0LgsIiArCiAgICAgICAgICAgICAgICAiINCYINC/0LDQtNGI0LjQvNC4INCy0YHRjyDRgdGC0LXQv9GMIiArCiAgICAgICAgICAgICAgICAiINCf0L7QutGA0YvQu9Cw0YHRjC4iICsKICAgICAgICAgICAgICAgICIg0JrQsNC6INGA0L7QtdC8INGH0LXRgNC90L7QuSDRgdCw0YDQsNC90YfQuC4iOwoKICAgICAgICBTdHJpbmcgdGV4dFBvZW1zMyA9ICLQo9GA0LAhINC80Ysg0LvQvtC80LjQvDsg0LPQvdGD0YLRgdGPINGI0LLQtdC00YshIiArCiAgICAgICAgICAgICAgICAiINCeINGB0LvQsNCy0L3Ri9C5INGH0LDRgSEg0L4g0YHQu9Cw0LLQvdGL0Lkg0LLQuNC0ISIgKwogICAgICAgICAgICAgICAgIiDQldGJ0LUg0L3QsNC/0L7RgCAtINC4INCy0YDQsNCzINCx0LXQttC40YIuIiArCiAgICAgICAgICAgICAgICAiINCYINGB0LvQtdC00L7QvCDQutC+0L3QvdC40YbQsCIgKwogICAgICAgICAgICAgICAgIiDQn9GD0YHRgtC40LvQsNGB0YwhIiArCiAgICAgICAgICAgICAgICAiINCj0LHQuNC50YHRgtCy0L7QvCDRgtGD0L/Rj9GC0YHRjyDQvNC10YfQuCwiICsKICAgICAgICAgICAgICAgICIg0Jgg0L/QsNC00YjQuNC80Lgg0LLRgdGPINGB0YLQtdC/0YwiICsKICAgICAgICAgICAgICAgICIg0J/QvtC60YDRi9C70LDRgdGMISEiICsKICAgICAgICAgICAgICAgICIg0JrQsNC6INGA0L7QtdC8INGH0LXRgNC90L7QuSDRgdCw0YDQsNC90YfQuCEiOwoKICAgICAgICBTdHJpbmcgcG9lbSA9IHRleHRQb2VtczEgKyAiICoqKioqKioqKioqKioqKiogIiArIHRleHRQb2VtczIgKyAiKioqKioqKioiICsgdGV4dFBvZW1zMysiKioqKiIrdGV4dFBvZW1zMTsKCgoKICAgICAgICBQYXR0ZXJuIHBhdHRlcm4gPSBQYXR0ZXJuLmNvbXBpbGUoIlteXFwqXSsiKTsKICAgICAgICBQYXR0ZXJuIHAgPSBQYXR0ZXJuLmNvbXBpbGUoIiErIik7CiAgICAgICAgTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKHBvZW0pOwogICAgICAgIGludCBtYXhDb3VudCA9IC0xOyAvL9C30LDQstC10LTQvtC80L4g0L3QuNC30LrQvtC1INC30L3QsNGH0LXQvdC40LUKICAgICAgICBTdHJpbmcgbWF4UG9lbSA9IG51bGw7CgogICAgICAgIHdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewogICAgICAgICAgICBpbnQgaSA9IDA7CgoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQotC10LrRg9GJ0LjQuSDRgdGC0LjRhTogIittYXRjaGVyLmdyb3VwKCkpOwogICAgICAgICAgICBNYXRjaGVyIG0gPSBwLm1hdGNoZXIobWF0Y2hlci5ncm91cCgpKTsKCiAgICAgICAgICAgIHdoaWxlIChtLmZpbmQoKSkgewogICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICB9CgoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQmtC+0LvQuNGH0LXRgdGC0LLQviAhOiAiK2kpOwogICAgICAgICAgICBpZihpID4gbWF4Q291bnQpIHsKICAgICAgICAgICAgICAgIG1heENvdW50ID0gaTsKICAgICAgICAgICAgICAgIG1heFBvZW0gPSBtYXRjaGVyLmdyb3VwKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YHRgtC40YU6ICIrbWF4UG9lbSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4gITogIittYXhDb3VudCk7CiAgICB9Cn0=
stdout
Текущий стих: Часов однообразный бой, Томительная ночи повесть!!! Язык для всех равно чужой И внятный каждому, как совесть!
Количество !: 2
Текущий стих: Ура! мы ломим; гнутся шведы. О славный час! о славный вид! Еще напор - и враг бежит. И следом конница Пустилась. Убийством тупятся мечи, И падшими вся степь Покрылась. Как роем черной саранчи.
Количество !: 3
Текущий стих: Ура! мы ломим; гнутся шведы! О славный час! о славный вид! Еще напор - и враг бежит. И следом конница Пустилась! Убийством тупятся мечи, И падшими вся степь Покрылась!! Как роем черной саранчи!
Количество !: 7
Текущий стих: Часов однообразный бой, Томительная ночи повесть!!! Язык для всех равно чужой И внятный каждому, как совесть!
Количество !: 2
Максимальный стих: Ура! мы ломим; гнутся шведы! О славный час! о славный вид! Еще напор - и враг бежит. И следом конница Пустилась! Убийством тупятся мечи, И падшими вся степь Покрылась!! Как роем черной саранчи!
Максимальное количество !: 7