阅读文本文件
问题描述:
public class Song
{
private String title;
private String artist;
public Song (String Title, String Artist)
{
Title = title;
Artist = artist;
}
public String toString()
{
return (title +" "+ artist);
}
}
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class compactDisc
{
private Song[] arr = new Song[20];
private int numSongs = 0;
public compactDisc() throws IOException
{
int i=0;
File file = new File ("song.txt");
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext()&& i<arr.length)
{
String Title = inputFile.nextLine();
String Artist = inputFile.nextLine();
arr[i] = new Song(Title,Artist);
i++;
}
numSongs = i;
}
public String toString()
{
String str = "";
for (int j = 0; j < numSongs; j++)
{
str += arr[j].toString();
}
return str;
}
}
import java.io.IOException;
import java.util.Scanner;
public class collection
{
public static void main(String[] args) throws IOException
{
compactDisc cd = new compactDisc();
System.out.println(cd);
}
}
这个程序是显示的歌曲列表和艺术家的时候,我的程序只打印出一堆“空” S光盘。歌曲类是我的打印格式,compactDisc类读取一个包含歌曲和艺术家列表的文件到一个数组中,主程序打印它们。但是,当我运行该程序时,它会打印出null nullnull nullnull nullnull nullnull nullnull null
而不是实际列表,并且方向似乎正确。我不知道为什么会发生。
答
请在您的歌班中查看此处。
private String title;
private String artist;
public Song (String Title, String Artist) {
Title = title;
Artist = artist;
}
您正在将未从您的Song类初始化的空值赋值给参数,因此您的类变量永远不会被填充。
应该比较像这样
public class Song {
private String title;
private String artist;
public Song (String title, String artist) {
this.title = title;
this.artist = artist;
}
}
同样按照约定类应以大写字母开头和变量应该用小字母开头。
答
的问题是在这里
public Song (String Title, String Artist)
{
Title = title;
Artist = artist;
}
参数是冠军,但你要指定标题(为空);
更改为:
title = Title;
artist = Artist;
+0
是的,我之前就知道这一点,刚刚变得粗心大意,甚至没有注意到XD –
答
的问题是在Song
类,如(我)的意见解释说:
public Song (String Title, String Artist)
{
Title = title; // assigns this.title into local Title
Artist = artist; // assigns this.artist into local Artist
}
谢谢你非常非常......现在这个作品! –