Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在正在处理的现有列表项之间添加StringList元素_Java_Arraylist_Processing - Fatal编程技术网

Java 在正在处理的现有列表项之间添加StringList元素

Java 在正在处理的现有列表项之间添加StringList元素,java,arraylist,processing,Java,Arraylist,Processing,我目前正在尝试将.txt文件(字幕文件)解析为.csv表 文件外的示例: 22 00:03:36,717 --> 00:03:38,344 (thunder crashing) 我认为使用StringList类型是我最好的选择,我几乎准备好了所有信息。剩下的唯一一件事是,我希望第二行的起始位置和结束位置是分开的字符串,彼此紧跟,如下所示: 22 00:03:36,717 00:03:38,344 (thunder crashing) 我已经知道如何使用substring()方法,但我不

我目前正在尝试将
.txt
文件(字幕文件)解析为
.csv

文件外的示例:

22
00:03:36,717 --> 00:03:38,344
(thunder crashing)
我认为使用
StringList
类型是我最好的选择,我几乎准备好了所有信息。剩下的唯一一件事是,我希望第二行的起始位置和结束位置是分开的字符串,彼此紧跟,如下所示:

22
00:03:36,717
00:03:38,344
(thunder crashing)
我已经知道如何使用
substring()
方法,但我不知道如何在特定索引处添加新字符串。
set
函数覆盖它,而
appends
函数只能将它添加到列表的末尾

事后来看,使用
ArrayList
是否更好?我试着这么做,但是我不知道如何使用实际的元素。我所拥有的是:

String s[] = loadStrings("subtest.txt");
ArrayList lines= new ArrayList();

for (int i=0; i<s.length; i++){
  lines.add(s[i]);
}
String s[]=loadStrings(“subtest.txt”);
ArrayList行=新的ArrayList();
对于(int i=0;i考虑到,您可能需要用新行替换
“-->”
,如下所示:

22
00:03:36,717
00:03:38,344
(thunder crashing)
MainP: 输入: 输出:
注意:通过这种方式,您将覆盖输入文件。

问题是,默认情况下,
ArrayList
包含
对象的列表,而不是
字符串的列表,因此从中获取的对象将是错误的数据类型。因为
ArrayList.get()的结果
是一个
对象
,您不能将其分配给
字符串
,也不能调用其上
字符串
类的方法(例如
String.length()

您需要的是。因为ArrayList是一个泛型类,所以可以使用泛型语法指定它应该包含的对象类型:

ArrayList<String> lines = new ArrayList<String>(); //creates a list of Strings
ArrayList lines=new ArrayList();//创建字符串列表

Processing提供了一个更完整的示例。

您不知道如何使用Arraylist吗?
lines.get(0).length()
将获取第一个字符串的长度…您必须从列表中获取字符串元素…Arraylist类还有一个add方法,允许您指定插入值的位置。和
lines.set(0,“first”+lines.get(0))
将更新第一个位置…但是,如果您已经有了阵列,则不清楚您期望的输出是什么,或者为什么需要列表
1
00:00:00,000
00:00:01,567
Anteriormente en Vikings...

2
00:00:01,765
00:00:03,298
Voy a ir de nuevo a saquear Inglaterra,

3
00:00:03,300
00:00:05,233
para la venganza de la
destrucción del asentamiento.
ArrayList<String> lines = new ArrayList<String>(); //creates a list of Strings