Java programozás – 2017 májusi emelt szakmai informatika érettségi – txt2srt (1. verzió)

A feladat leírását, melynek a megoldását közzéteszem innen töltheted le.

Saját osztály:

/**
 *
 */
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:

/**
 *
 */
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!

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

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.