A feladat leírását, melynek a megoldását közzéteszem innen töltheted le. Ez a megoldás tömbbel dolgozik. Az adattároló osztályban néhány feladatot előkészítek, és a végső megoldásban ezeket használom. Nem a legelegánsabb megoldás, a következő verzióban majd finomítok rajta.
Adattároló osztály:
/**
*
* @author https://webotlet.hu
*/
package webotlet_07maj_sms_szavak_java;
public class Szo
{
private String szo;
private String szamkod;
public Szo( String szo )
{
this.szo = szo;
}
public String getSzo()
{
return szo;
}
public String getSzamkod()
{
return szamkod;
}
public void setSzamkod(String szamkod)
{
this.szamkod = szamkod;
}
@Override
public String toString()
{
return "Szo{" + "szo=" + szo + ", szamkod=" + szamkod + '}';
}
public String SzoKod()
{
return szo + " : " + szamkod + "; ";
}
}
A feladat megoldásai:
/**
*
* @author https://webotlet.hu
*/
package webotlet_07maj_sms_szavak_java;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class Webotlet_07maj_sms_szavak_java
{
public static void main(String[] args)
{
// 1. feladat
System.out.println("1. feladat");
Scanner sc = new Scanner(System.in);
System.out.println("Adj meg egy betut!");
char c = sc.nextLine().charAt(0);
System.out.println(betukod(c));
// 2. feladat
System.out.println("2. feladat");
System.out.println("Adj meg egy szot!");
String szo = sc.nextLine();
for( int i = 0; i < szo.length(); i++ )
{
System.out.print(betukod(szo.charAt(i)));
}
System.out.println();
// 3. feladat
Szo[] szavak = null;
try
{
RandomAccessFile raf = new RandomAccessFile("szavak.txt", "r");
String sor;
int db = 0;
for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
{
db++;
}
szavak = new Szo[db];
raf.seek(0);
int hely = 0;
for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
{
szavak[hely] = new Szo(sor);
hely++;
}
raf.close();
}
catch( IOException e )
{
System.out.println("HIBA");
}
// for( int i = 0; i < szavak.length; i++ )
// {
// System.out.println(szavak[i].toString());
// }
//
// 4. feladat
System.out.println("4. feladat");
int max = 0;
for( int i = 0; i < szavak.length; i++ )
{
if( szavak[i].getSzo().length() > szavak[max].getSzo().length() )
{
max = i;
}
}
System.out.println("A leghosszabb szo: "+szavak[max].getSzo()
+ ", hossza:" + szavak[max].getSzo().length());
// 5. feladat
System.out.println("5. feladat");
int db5 = 0;
for( int i = 0; i < szavak.length; i++ )
{
if( szavak[i].getSzo().length() <= 5 )
{
db5++;
}
}
System.out.println("A fajlban " + db5 + " darab rovid szo van.");
// 6. feladat
for( int i = 0; i < szavak.length; i++ )
{
String szamkod = "";
for( int j = 0; j < szavak[i].getSzo().length(); j++ )
{
szamkod = szamkod.concat(String.valueOf(betukod(szavak[i].getSzo().charAt(j))));
}
szavak[i].setSzamkod(szamkod);
}
try
{
RandomAccessFile ki = new RandomAccessFile("kodok.txt", "rw");
ki.setLength(0);
for( int i = 0; i < szavak.length; i++ )
{
ki.writeBytes(szavak[i].getSzamkod() + "\n");
}
ki.close();
}
catch( IOException e )
{
System.out.println("HIBA");
}
// 7. feladat
System.out.println("7. feladat");
sc = new Scanner(System.in);
System.out.println("Adj meg egy szamkodot!");
String szamsor = sc.nextLine();
for( int i = 0; i < szavak.length; i++ )
{
if( szavak[i].getSzamkod().equals(szamsor) )
{
System.out.println(szavak[i].getSzo());
}
}
// 8. feladat
System.out.println("8. feladat");
for( int i = 0; i < szavak.length - 1; i++ )
{
for( int j = i + 1; j < szavak.length; j++ )
{
if( szavak[i].getSzamkod().compareTo(szavak[j].getSzamkod()) > 0 )
{
Szo csere = szavak[i];
szavak[i] = szavak[j];
szavak[j] = csere;
}
}
}
if( szavak[0].getSzamkod().equals(szavak[1].getSzamkod()))
{
System.out.print(szavak[0].SzoKod());
}
for( int i = 1; i < szavak.length - 1; i++ )
{
if( szavak[i].getSzamkod().equals(szavak[i + 1].getSzamkod()))
{
System.out.print(szavak[i].SzoKod());
}
else if( szavak[i].getSzamkod().equals(szavak[i - 1].getSzamkod()))
{
System.out.print(szavak[i].SzoKod());
}
}
int utolso = szavak.length - 1;
if( szavak[utolso].getSzamkod().equals(szavak[utolso - 1].getSzamkod()))
{
System.out.print(szavak[utolso].SzoKod());
}
System.out.println();
// 9. feladat
System.out.println("9. feladat");
String mibol = szavak[0].getSzamkod();
int db = 0;
int maxDb = 1;
for (int i = 0; i < szavak.length - 1; i++)
{
if( szavak[i].getSzamkod().equals(szavak[i + 1].getSzamkod()))
{
db++;
if( db > maxDb )
{
maxDb = db;
mibol = szavak[i].getSzamkod();
}
}
else
{
db = 1;
}
}
System.out.println(mibol + ": ");
for (int i = 0; i < szavak.length; i++)
{
if( szavak[i].getSzamkod().equals(mibol))
{
System.out.print(szavak[i].getSzo() + " ");
}
}
System.out.println();
}
public static int betukod( char betu )
{
int kod = 0;
if( betu == 'a' || betu == 'b' || betu == 'c' )
{
kod = 2;
}
else if( betu == 'd' || betu == 'e' || betu == 'f' )
{
kod = 3;
}
else if( betu == 'g' || betu == 'h' || betu == 'i' )
{
kod = 4;
}
else if( betu == 'j' || betu == 'k' || betu == 'l' )
{
kod = 5;
}
else if( betu == 'm' || betu == 'n' || betu == 'o' )
{
kod = 6;
}
else if( betu == 'p' || betu == 'q' || betu == 'r' || betu == 's' )
{
kod = 7;
}
else if( betu == 't' || betu == 'u' || betu == 'v' )
{
kod = 8;
}
else
{
kod = 9;
}
return kod;
}
}
Ha hibát találsz benne, kérlek jelezd!
