因此,对于作业,我必须从输入文件中读取格式为:
米勒< ---姓氏
威廉< ---名字
00001< ---账户ID
891692 06< ---账户余额
这四行代表“帐户”。从main方法我必须从另一个名为account的类调用,并在该类中运行一个名为toString()的方法
toString()应该以这种格式打印出这四行:
00001,Miller,William,$ 891692.06
到目前为止,这是我在主要方法中的内容:
int count = 1;
while(read.hasNextLine()) {
String nextLine = read.nextLine();
account.toString(nextLine);
if(count %4==0) {
vector.addAccount(nextLine);
}
count++;
}
这是我的toString方法中的内容:
public String toString(String line) {
for(int i = 0; i < position; i++){
line = info[i];
position++;
}
return System.out.println(info[2]+", "+info[0]+", "+info[1]+", "+info[3]);
}
在toString中我收到了return语句的错误,而且我需要格式化info [3](最终应该是帐户余额),这样当它打印时它将以美元表示法形式:$ 00.00 < / p>
非常感谢任何帮助!谢谢!
答案 0 :(得分:3)
您不能return
System.out.println(...);
您的return
声明应如下所示:
return info[2]+", "+info[0]+", "+info[1]+", "+info[3];
答案 1 :(得分:1)
此代码存在2个问题。第一个是明显的编译错误
return System.out.println(info[2]+", "+info[0]+", "+info[1]+", "+info[3]);
您应该返回String
但是对System.out.println
的调用不会返回任何内容。它在控制台上打印String
。你需要的是
return info[2]+", "+info[0]+", "+info[1]+", "+info[3];
第二个是toString
方法的实施。我认为您的作业引用的toString
是从toString
继承的标准Object
方法。这意味着您将拥有一个Account
类,您可以在其中传递构造函数中的文件内容,或让Account
类解析文件。然后,从文件中读取的值将存储在字段中,而在toString
方法中,您将以正确的形式返回这些值。像
public static void main( String[] args ){
//loop over file and create Account instances
Account account = new Account( lastName, firstName, ... );
}
public class Account{
private String lastName, firstName;
public Account( String lastName, String firstName, ... ){
this.lastName = lastName;
this.firstName = firstName;
}
@Override
public String toString(){
return lastName + ", " + firstName ... ;
}
}
答案 2 :(得分:0)
您不会从print
返回toString
语句,而是返回字符串本身。
只需将您的return
声明更改为: -
return info[2]+", "+info[0]+", "+info[1]+", "+info[3];
答案 3 :(得分:0)
结合Nambari的提示,您应该尝试以下代码:
int count = 1;
while(read.hasNextLine()) {
String nextLine = read.nextLine();
System.out.println(account.toString(nextLine));
if(count %4==0) {
vector.addAccount(nextLine);
}
count++;
}
toString方法:
public String toString(String line) {
for(int i = 0; i < position; i++){
line = info[i];
position++;
}
return info[2]+", "+info[0]+", "+info[1]+", "+info[3];
}