Java egyperces – Hányszor van benne az adott String megoldása

Csak akkor olvass tovább, ha a Hányszor van benne az adott String feladatot megoldottad, vagy nem sikerült megoldani.

Lássuk akkor a feladatok megoldásait. Az egyes változatok teljesen eltérő megközelítést alkalmaznak.

1. változat

String hol = "KKNDDKDKKNKDEDNNENNNNNEKNEEEDKNK"+
             "EEEDKDDNDKDEKEDKNKKDEENKEKKDKEND"+
             "KNNDDDKNDNDDDNEKNEDENDEEDKDDDNDN"+
             "NEDEKNENNEEKDEKKDKKEEEDKDNNKKDNN"+
             "NEDEKKNEEENKKKDEKDKKKN";

String mit = "KKN";
int db = 0;
for( int i = 0; i < hol.length()-2; i++ )
{
  if( hol.substring(i,i+3).equals(mit) )
  {
    db++;
  }
}
System.out.println( db );

2. változat

String hol = "KKNDDKDKKNKDEDNNENNNNNEKNEEEDKNK"+
             "EEEDKDDNDKDEKEDKNKKDEENKEKKDKEND"+
             "KNNDDDKNDNDDDNEKNEDENDEEDKDDDNDN"+
             "NEDEKNENNEEKDEKKDKKEEEDKDNNKKDNN"+
             "NEDEKKNEEENKKKDEKDKKKN";

String mit = "KKN";
int db = 0;

boolean van = hol.contains( mit );
while( van )
{
  db++;
  hol = hol.replaceFirst( mit, "" );
  van = hol.contains( mit );
}
System.out.println( db );

3. változat (ehhez már gondolkodni sem árt)

String hol = "KKNDDKDKKNKDEDNNENNNNNEKNEEEDKNK"+
             "EEEDKDDNDKDEKEDKNKKDEENKEKKDKEND"+
             "KNNDDDKNDNDDDNEKNEDENDEEDKDDDNDN"+
             "NEDEKNENNEEKDEKKDKKEEEDKDNNKKDNN"+
             "NEDEKKNEEENKKKDEKDKKKN";

String mit = "KKN";
// csak rövidítés miatt, hogy elférjen egy sorba a kód
int db = (hol.length() - hol.replaceAll( mit, "" ).length()) / mit.length();

System.out.println( db );

4. változat (ehhez meg jól kell ismerni a Stringeket)

String hol = "KKNDDKDKKNKDEDNNENNNNNEKNEEEDKNK"+
             "EEEDKDDNDKDEKEDKNKKDEENKEKKDKEND"+
             "KNNDDDKNDNDDDNEKNEDENDEEDKDDDNDN"+
             "NEDEKNENNEEKDEKKDKKEEEDKDNNKKDNN"+
             "NEDEKKNEEENKKKDEKDKKKN";

String mit = "KKN";
System.out.println( hol.split( mit, -1 ).length-1 );

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .