字幕文件srt格式解析

字幕文件srt格式解析解析srt文件,封装为list返回首先新建个class,表示单个字幕数据的实体类publicclassSrtEntity{/***字幕序号*/publicintnumber;/***开始时间*/publicStringbg;/***结束时间*/publicStringed;/***字幕内容*/publ

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

解析srt文件,封装为list返回

  1. 首先新建个class,表示单个字幕数据的实体类
public class SrtEntity { 
   
    /** * 字幕序号 */
    public int number;
    /** * 开始时间 */
    public String bg;
    /** * 结束时间 */
    public String ed;
    /** * 字幕内容 */
    public String content;

    public int getNumber() { 
   
        return number;
    }

    public void setNumber(int number) { 
   
        this.number = number;
    }

    public String getBg() { 
   
        return bg;
    }

    public void setBg(String bg) { 
   
        this.bg = bg;
    }

    public String getEd() { 
   
        return ed;
    }

    public void setEd(String ed) { 
   
        this.ed = ed;
    }

    public String getContent() { 
   
        return content;
    }

    public void setContent(String content) { 
   
        this.content = content;
    }
}

Jetbrains全家桶1年46,售后保障稳定

2.编写srt转list的方法

	/** * 解析srt文件,封装为list并返回 * @param srtPath */
public List<SrtEntity> getSrtInfoList(String srtPath){ 

List<SrtEntity> srtList = new ArrayList<>();
try { 

InputStreamReader read = new InputStreamReader(new FileInputStream(srtPath), "utf-8");
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt;
int index = 0;
SrtEntity entity = new SrtEntity();
while ((lineTxt = bufferedReader.readLine()) != null){ 

index ++;
switch (index % 4){ 

case 1 :
entity.setNumber(Integer.parseInt(lineTxt));
break;
case 2 :
String[] timeArray = lineTxt.split(" --> ");
entity.setBg(timeArray[0]);
entity.setEd(timeArray[1]);
break;
case 3 :
entity.setContent(lineTxt);
break;
case 0 :
srtList.add(entity);
entity = new SrtEntity();
break;
}
}
} catch (UnsupportedEncodingException e) { 

e.printStackTrace();
} catch (FileNotFoundException e) { 

e.printStackTrace();
} catch (IOException e) { 

e.printStackTrace();
}
return srtList;
}

3.测试方法

public static void main(String[] args) { 

long begin = System.currentTimeMillis();
FileOperateServiceImpl impl = new FileOperateServiceImpl();
// 解析srt获取list
List<SrtEntity> list = impl.getSrtInfoList("E:\\111.srt");
long end = System.currentTimeMillis();
System.out.println(end - begin);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/200678.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 在乌镇拼命“洗白”的拼多多

    在乌镇拼命“洗白”的拼多多“虽然我们没为别人拼过命,但是一定为别人拼过多多。“以往冬初的乌镇世界互联网大会,刘强东往往会穿着显腰瘦的西服出现,不过今年没出现,倒是友商拼多多的创始人黄峥,来了。黄峥…

  • vue富文本编辑器tinymce_vue移动端富文本编辑器

    vue富文本编辑器tinymce_vue移动端富文本编辑器vue富文本编辑器Vue-Quill-Editor

    2022年10月14日
  • C#窗体设计SaveFileDialog的用法

    C#窗体设计SaveFileDialog的用法本文讲解C#窗体设计SaveFileDialog的用法。操作流程1.1. SaveFileDialog概念1.1.1. 基本属性Windows窗体SaveFileDialog组件是一个预先配置的对话框。它与Windows使用的标准“保存文件”对话框相同。该组件继承自CommonDialog类。SaveFileDialog用于保存文件,其属性如下所示使用该控件作为一个简单的解决方案,使用户能够保存文件,而不用配置您自己的对话框。利用标准的Windows对话框,创建基本功能可

  • sqlmap下载安装教程_termux 安装kali

    sqlmap下载安装教程_termux 安装kali第一步:下载python:https://www.python.org/downloads/(这里有python各种版本,但是一般建议安装3和2.7)sqlmap:https://github

  • 40篇英语短文搞定高考3500个单词[通俗易懂]

    40篇英语短文搞定高考3500个单词[通俗易懂]40篇英语短文搞定高考3500个单词1.FallinLovewithEnglish爱上英语Hidingbehindtheloosedustycurtain,ateenagerpackeduphisovercoatintothesuitcase.Heplannedtoleavehomeatduskthoughtherewasthun…

  • python3.7安装步骤_centos运行python脚本

    python3.7安装步骤_centos运行python脚本centos7自带版本是python2.7如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/1、先查看系统python的位置在哪儿whereispythonpython2.7默认安装是在/usr/bin目录中,切换到/usr/bin/cd/usr/bin/llpython*从下面的图中我们可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个..

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号