在分裂字符串中获取字符串

时间:2015-04-30 07:38:18

标签: java

我正在从文本文件中加载字符串,例如;

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"以后可以返回。另外,

4 个答案:

答案 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)

将符号作为字符串分隔符以及作为有效数据不是一个好主意,并导致代码容易出错。当然你可以解决这个问题 - 我之前的一些人已经建议过这样做 - 但我强烈建议你改变输入并消除歧义。