我正在从文本文件中加载字符串,例如;
Sunset Blvd 1950.ogg,Sunset Blvd,Paramount Pictures,1950,110,Billy Wilder,4,William Holden,Gloria Swanson,Erich von Stroheim,Nancy Olson
现在我有一个类设置,它扩展到2个父类(Media> Video> Avi / Ogg / etc)。该类包含以下变量;
public Avi(String title, String fileName, int releaseYear, String studio, String director, String castNames, double runtime, int cast) {
super(title, fileName, releaseYear, studio, director, castNames, runtime, cast);
}
现在我使用缓冲区读取器和循环加载文本文件,但继承问题,演员名称(文本文件中的最后一个,也用逗号分隔) 但由于我已经使用了分离器,我不知道如何将每个演员都变成一个简单的字符串,例如" Larry Davis,Eddy Murphy,Etc Etc"以后可以返回。另外,
答案 0 :(得分:2)
如果您的演员表从William Holden
开始,您可以
line.split(",", 8);
答案 1 :(得分:0)
我认为通过拆分器你的意思是String方法“拆分”。 如果是这样,您的文本文件是否始终具有相同的结构? 意思是在演员姓名之前总是有相同数量的元素? 因为String方法“split”可以使用第二个参数来指定要检索的元素数量(参见link to String API)
答案 2 :(得分:0)
这些解决方案都没有起作用,但是我提出的那些有效:
String castNames = "";
int splitLength = split.length - 7;
for (int i = 0; i < splitLength; i++) {
castNames += split[7 + i] + ",";
}
Avi avi = new Avi(split[1]/*title*/
, split[0]/*filename*/
, Integer.parseInt(split[3])/*releaseyear*/
, split[2]/*studio*/
, split[5]/*director*/
, castNames/*castnames*/
, Double.parseDouble(split[4])/*runtime*/
, Integer.parseInt(split[6])/*cast*/);
return avi;
答案 3 :(得分:-1)
将符号作为字符串分隔符以及作为有效数据不是一个好主意,并导致代码容易出错。当然你可以解决这个问题 - 我之前的一些人已经建议过这样做 - 但我强烈建议你改变输入并消除歧义。