Я пишу программу для исправления файла субтитров mov ie (.srt). Помещение кода в метод main работает нормально, но теперь, когда я создал метод для упрощения своего кода, метод, кажется, не функционирует, и вывод совпадает с вводом, ничего не делается для настройки субтитров по времени.
import java.util.Scanner;
import java.io.File;
import java.util.Formatter;
import java.io.FileNotFoundException;
public class SubtitleFixer
{
public static void main(String[] args)
{
try{
File subFile = new File("/sdcard/UCDownloads/video/hichkiSub.srt");
Formatter fixedSubFile = new Formatter("/sdcard/UCDownloads/video/newhichkiSubFixed.srt");
Scanner scanText = new Scanner(subFile);
while(scanText.hasNext()){
String textFound = scanText.nextLine();
if (textFound.contains("-->")){
String fromHour, fromMins, fromSecs, middleText, toHour, toMins, toSecs, endText;
int adjustMins = 1, adjustSecs = 2;
fromHour = textFound.substring(0,2);
fromMins = textFound.substring(3,5);
fromSecs = textFound.substring(6,8);
middleText = textFound.substring(8,17);
toHour = textFound.substring(17,19);
toMins = textFound.substring(20,22);
toSecs = textFound.substring(23,25);
endText = textFound.substring(25);
fixSubTime(fromSecs,adjustSecs,fromMins);
fixSubTime(fromMins,adjustMins,fromHour);
fixSubTime(toSecs,adjustSecs,toMins);
fixSubTime(toMins,adjustMins,toHour);
textFound = fromHour+":"+fromMins+":"+fromSecs+middleText+toHour+":"+toMins+":"+toSecs+endText;
}
fixedSubFile.format("%s\n",textFound);
}
scanText.close();
fixedSubFile.close();
}catch(FileNotFoundException error){System.out.println(error);}
}
private static void fixSubTime(String fromOrTo, int adjSecsOrMins, String minsOrHour){
int fromOrToNum = Integer.parseInt(fromOrTo);
int minsOrHourNum = Integer.parseInt(minsOrHour);
fromOrToNum += adjSecsOrMins;
if (fromOrToNum >= 60){
fromOrToNum -= 60; minsOrHourNum += 1;
}
else if(fromOrToNum < 0) {
fromOrToNum += 60; minsOrHourNum -= 1;
}
formatNum(fromOrToNum, fromOrTo);
formatNum(minsOrHourNum,minsOrHour);
}
private static void formatNum(int num, String text){
if (num <= 9){
text = "0"+num;
}
else {
text = ""+num;
}
}
}
Выход (аналогично входу):
1 00: 01: 15 , 784 -> 00: 01: 17 , 994 Мэм, сэр увидит вас сейчас.
2 00: 01: 23 , 416 -> 00: 01: 24 , 376 Спасибо.
3 00: 01: 43 687 -> 00: 01: 45 530 Г-жа Наина Матур. Пожалуйста, садитесь.
4 00: 01: 47,565 -> 00: 01: 48,942 Двойной бакалавр в сфере образования.
5 00: 01: 49,317 -> 00: 01: 51,277 И магистры в науке. Впечатляет. ...
Ожидаемый результат:
1 00: 02: 17 , 784 -> 00: 02: 19 , 994 Мэм, сэр увидит вас сейчас.
2 00: 02: 25 , 416 -> 00: 02: 26 , 376 Спасибо.
3 00: 02: 45,687 -> 00: 02: 47,730 Г-жа Наина Матур. Пожалуйста, сидите.
4 00: 02: 49,565 -> 00: 02: 50,942 Двойной бакалавр в сфере образования.
5 00: 02: 51,317 -> 00: 02: 53,277 И магистры в науке. Впечатляет.