我想仅使用字幕中的文本进行进一步处理。
所以,打开一个 srt 文件会加载这个
1
00:00:10,500 --> 00:00:13,000
Elephant's Dream
2
00:00:15,000 --> 00:00:18,000
At the left we can see...
然后,在剥离/提取之后,结果将是
Elephant's Dream
At the left we can see...
我想去掉所有的编号和时间码,所以输出只包含与原始字幕完全相同的纯文本,并将结果存储在一个变量中以供进一步处理。
public void open_file()
{
JFileChooser filechooser = new JFileChooser();
filechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int i = filechooser.showOpenDialog(this);
if (i == filechooser.CANCEL_OPTION)
return;
File OpenFile = filechooser.getSelectedFile();
if (OpenFile == null || OpenFile.getName().equals(""))
{
JOptionPane.showMessageDialog(this, "choose file", "Error", JOptionPane.ERROR_MESSAGE);
return;
}
try {
BufferedReader bufferedreader = new BufferedReader(new FileReader(BukaFile));
StringBuffer stringbuffer = new StringBuffer();
String Row;
while ((Row = bufferedreader.readLine()) != null) stringbuffer.append(Row+"\n");
textArea.setText(stringbuffer.toString());
String SubText = textArea.getText();
} catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, "File not found" + ex);
} catch (IOException ex)
{
JOptionPane.showMessageDialog(null, "IO Error"+ ex);
}
}
我已经创建了一个方法(如上)来打开和加载现有的 srt 文件并将其放入一个字符串(上面命名为 SubText)变量中。
要提取这些文本,我只知道我必须使用编号、时间码和空格作为起点和终点,但我不知道如何编码以检测文本中的这些编号和时间码。
我应该如何在java中完成这个?顺便说一句,我正在使用 Netbeans。