我无法弄清楚如何正确地做到这一点。所以我有这个数组,可以包含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
答案 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);