Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package finki.np;
- /**
- * Created by Coka on 23-Jan-17.
- */
- import java.io.InputStream;
- import java.time.Duration;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- public class SubtitlesTest {
- public static void main(String[] args) {
- Subtitles subtitles = new Subtitles();
- int n = subtitles.loadSubtitles(System.in);
- System.out.println("+++++ ORIGINIAL SUBTITLES +++++");
- subtitles.print();
- int shift = n * 37;
- shift = (shift % 2 == 1) ? -shift : shift;
- System.out.println(String.format("SHIFT FOR %d ms", shift));
- subtitles.shift(shift);
- System.out.println("+++++ SHIFTED SUBTITLES +++++");
- subtitles.print();
- }
- }
- // Вашиот код овде
- class Subtitles {
- List<Srt> srt;
- public Subtitles() {
- srt = new ArrayList<>();
- }
- public int loadSubtitles(InputStream inputStream) {
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss.SSS");
- Scanner scanner = new Scanner(inputStream);
- while (scanner.hasNextLine()) {
- String seq = scanner.nextLine();
- Integer seqNum = Integer.parseInt(seq);
- String times = scanner.nextLine();
- String partTimes[] = times.split(" --> ");
- LocalTime firstTime = LocalTime.parse(partTimes[0].replace(",", "."), formatter);
- LocalTime secondTime = LocalTime.parse(partTimes[1].replace(",", "."), formatter);
- String text = "";
- while (true) {
- String tmp;
- if (scanner.hasNextLine()) {
- tmp = scanner.nextLine();
- } else break;
- if (tmp.length() == 0)
- break;
- text += tmp + "\n";
- }
- srt.add(new Srt(seqNum, firstTime, secondTime, text));
- }
- return srt.size();
- }
- public void print() {
- srt.forEach(System.out::println);
- }
- void shift(int ms) {
- srt.forEach(srt1 -> srt1.shift(ms));
- }
- }
- class Srt {
- int seqNum;
- LocalTime startTime;
- LocalTime endTime;
- String text;
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss,SSS");
- public Srt(int seqNum, LocalTime startTime, LocalTime endTime, String text) {
- this.seqNum = seqNum;
- this.startTime = startTime;
- this.endTime = endTime;
- this.text = text;
- }
- void shift(int ms) {
- startTime = startTime.plus(Duration.ofMillis(ms));
- endTime = endTime.plus(Duration.ofMillis(ms));
- }
- @Override
- public String toString() {
- return seqNum + "\n"
- + startTime.format(formatter)
- + " --> "
- + endTime.format(formatter)
- + "\n"
- + text;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement