以适当的顺序将项添加到数组

时间:2014-03-10 00:38:47

标签: java arrays

我无法弄清楚如何正确地做到这一点。所以我有这个数组,可以包含6个项目。我有这个.txt文件,其中包含一行中的歌曲,然后是下一首歌曲的歌曲,然后是下一首歌曲,然后是谁。等等等等。我的.txt文件总共有12行,但我只能在我的数组中放入6个项目。所以我想知道,如何将歌曲+艺术家的标题放在阵列上的单个索引中。这样我以后就可以打印出标题" by"艺术家。

我的代码很短,所以查看它可能有所帮助。

/**This program creates a list of songs for a CD by reading from a file*/
import java.io.*;

public class CompactDisc
{
    public static void main(String [] args) throws IOException
    {
    FileReader file = new FileReader("Classics.txt");
    BufferedReader input = new BufferedReader(file);
    String title;
    String artist;

    //Declare an array of songs, called cd, of size 6
    String[] cd = new String[6];

    for (int i = 0; i < cd.length; i++)
    {
        title = input.readLine();
        artist = input.readLine();  
        // fill the array by creating a new song with 
        // the title and artist and storing it in the 
        // appropriate position in the array
     cd.add(title + artist);
    }

    System.out.println("Contents of Classics:");
    for (int i = 0; i < cd.length; i++)
    {
        //print the contents of the array to the console
    }
  }
}

这就是.txt文件中的内容

Ode to Joy
Bach
The Sleeping Beauty
Tchaikovsky
Lullaby
Brahms
Canon
Bach
Symphony No. 5
Beethoven
The Blue Danube Waltz
Strauss

最终输出打印为:

Contents of Classics
Ode to Joy by Bach
The Sleeping Beauty by Tchaikovsky
Lullaby by Brahms
Canon by Bach
Symphony No. 5 by Beethoven
The Blue Danube Waltz by Strauss

2 个答案:

答案 0 :(得分:2)

你可以直接替换:

cd.add(title + artist);

由:

cd[i] = title + " by " + artist;

只需打印出来:

System.out.println(cd[i]);

答案 1 :(得分:0)

我会使用@dasblinkenlight的解决方案,但是我会在Track类中添加一个toString方法。

我还会更进一步,使它成为一个不可变的值类型对象,但那可能是你需要的顶部。

toString允许你这样做:

System.out.println(“Track:”+ track);