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:

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

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

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .