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!