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. Adattároló osztály nincs.
A feladat megoldásai:
/** * * @author https://webotlet.hu */ package webotlet_11maj_szojatek; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Scanner; public class Webotlet_11maj_szojatek { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("1. feladat Adjon meg egy szot: "); String szo = sc.nextLine(); if( vanMgh(szo) ) { System.out.println("Van benne maganhangzo."); } else { System.out.println("Nincs benne maganhangzo."); } System.out.println("2. feladat"); String leghosszabb = ""; try { RandomAccessFile raf = new RandomAccessFile("szoveg.txt", "r"); String sor; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { if( sor.length() > leghosszabb.length() ) { leghosszabb = sor; } } raf.close(); } catch( IOException e ) { System.out.println("HIBA"); } System.out.println(leghosszabb + " " + leghosszabb.length()); System.out.println("3. feladat"); int tobbMgh = 0; int osszDb = 0; try { RandomAccessFile raf = new RandomAccessFile("szoveg.txt", "r"); String sor; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { osszDb++; if( mghDb(sor) > (sor.length() / 2) ) { System.out.print(sor + " "); tobbMgh++; } } System.out.println(); double szazalek = (double)tobbMgh / osszDb * 100; System.out.println(String.format("%d/%d : %.2f%%", tobbMgh, osszDb, szazalek)); raf.close(); } catch( IOException e ) { System.out.println("HIBA"); } System.out.println("4. feladat"); String[] szavak5 = null; try { RandomAccessFile raf = new RandomAccessFile("szoveg.txt", "r"); String sor; int db = 0; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { if( sor.length() == 5 ) { db++; } } szavak5 = new String[db]; raf.seek(0); int hely = 0; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { if( sor.length() == 5 ) { szavak5[hely] = sor; hely++; } } raf.close(); } catch( IOException e ) { System.out.println("HIBA"); } System.out.println("Adj meg egy 3 betus szotreszletet!"); String reszlet = sc.nextLine(); for( int i = 0; i < szavak5.length; i++ ) { if( szavak5[i].substring(1, 4).equals(reszlet) ) { System.out.print(szavak5[i] + " "); } } System.out.println(); // 5. feladat for( int i = 0; i < szavak5.length - 1; i++ ) { for( int j = i + 1; j < szavak5.length; j++ ) { if( szavak5[i].substring(1, 4).compareTo(szavak5[j].substring(1, 4)) > 0 ) { String csere = szavak5[i]; szavak5[i] = szavak5[j]; szavak5[j] = csere; } } } try { RandomAccessFile ki = new RandomAccessFile("letra.txt", "rw"); ki.setLength(0); if( szavak5[0].substring(1, 4).equals(szavak5[1].substring(1, 4)) ) { ki.writeBytes(szavak5[0] + "\n"); } for( int i = 1; i < szavak5.length - 1; i++ ) { if( szavak5[i].substring(1, 4).equals(szavak5[i - 1].substring(1, 4)) ) { ki.writeBytes(szavak5[i] + "\n"); } else if( szavak5[i].substring(1, 4).equals(szavak5[i + 1].substring(1, 4)) ) { ki.writeBytes("\n" + szavak5[i] + "\n"); } } if( szavak5[szavak5.length - 1].substring(1, 4) .equals(szavak5[szavak5.length - 2].substring(1, 4)) ) { ki.writeBytes(szavak5[szavak5.length - 1] + "\n"); } } catch( IOException e ) { System.out.println("HIBA"); } } public static boolean vanMgh(String szo) { if( szo.contains("a") || szo.contains("e") || szo.contains("i") || szo.contains("o") || szo.contains("u") ) { return true; } else { return false; } } public static int mghDb(String szo) { int db = 0; for( int i = 0; i < szo.length(); i++ ) { if( szo.charAt(i) == 'a' || szo.charAt(i) == 'e' || szo.charAt(i) == 'i' || szo.charAt(i) == 'o' || szo.charAt(i) == 'u' ) { db++; } } return db; } }
Ha hibát találsz benne, kérlek jelezd!