A feladat leírását, melynek a megoldását közzéteszem innen töltheted le.
Saját osztály:
/** * * @author https://webotlet.hu */ package webotlet_17maj_szakmai_e_txt2srt; public class IdozitettFelirat { private String idozites; private String felirat; private int szavakSzama; public IdozitettFelirat(String idozites, String felirat) { this.idozites = srtIdozites(idozites); this.felirat = felirat; szavakSzama = szavakSzama(felirat); } public int szavakSzama(String felirat) { return felirat.split(" ").length; } private String srtIdozites(String idozites) { //65:31 - 65:34 //01:05:31 --> 01:05:34 String[] ido1 = new String[3]; String[] ido2 = new String[3]; int tmp = Integer.parseInt(idozites.substring(0,2)); ido1[0] = String.format("%02d", tmp / 60); ido1[1] = String.format("%02d", tmp % 60); ido1[2] = idozites.substring(3,5); tmp = Integer.parseInt(idozites.substring(8,10)); ido2[0] = String.format("%02d", tmp / 60); ido2[1] = String.format("%02d", tmp % 60); ido2[2] = idozites.substring(11); return String.join(":", ido1) + " --> " + String.join(":", ido2); } public String getIdozites() { return idozites; } public String getFelirat() { return felirat; } public int getSzavakSzama() { return szavakSzama; } @Override public String toString() { return "IdozitettFelirat{" + "idozites=" + idozites + ", felirat=" + felirat + ", szavakSzama=" + szavakSzama + '}'; } }
A feladat megoldásai:
/** * * @author https://webotlet.hu */ package webotlet_17maj_szakmai_e_txt2srt; import java.io.IOException; import java.io.RandomAccessFile; import java.util.ArrayList; public class Webotlet_17maj_szakmai_e_Txt2srt { public static void main(String[] args) { ArrayList<IdozitettFelirat> feliratok = new ArrayList<>(); try { RandomAccessFile raf = new RandomAccessFile("feliratok.txt", "r"); String sor; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { feliratok.add(new IdozitettFelirat(sor, raf.readLine())); } raf.close(); } catch( IOException e ) { System.out.println("HIBA"); } System.out.println("5. feladat - feliratok száma: " + feliratok.size()); int max = 0; for( int i = 1; i < feliratok.size(); i++ ) { if( feliratok.get(i).getSzavakSzama() > feliratok.get(max).getSzavakSzama() ) { max = i; } } System.out.println("7. feladat - Legtöbb szóból álló felirat:"); System.out.println(feliratok.get(max).getFelirat()); try { RandomAccessFile ki = new RandomAccessFile("felirat.srt", "rw"); ki.setLength(0); for( int i = 0; i < feliratok.size(); i++ ) { ki.writeBytes((i + 1) + "\n" + feliratok.get(i).getIdozites() + "\n" + feliratok.get(i).getFelirat() + "\n\n"); } ki.close(); } catch( IOException e ) { System.out.println("HIBA"); } } }
Ha hibát találsz benne, kérlek jelezd!