gpt4 book ai didi

java - 使用 toString 方法和 arraylist.clear 显示帐户信息

转载 作者:行者123 更新时间:2023-12-01 14:09:56 24 4
gpt4 key购买 nike

我正在使用 toString 方法来显示数组列表中的数据。我需要它打印出来 账户数量、每个账户的余额以及总余额。我几乎可以肯定我的循环正在错误/错误的位置使用。但我不知道如何解决它。还有当我使用accounts.clear() 清除了总余额,但帐户数量保持不变,我应该有另一个循环吗?如果您能提供任何帮助,我们将不胜感激,谢谢。

This is my Account Class:
package prob2;
public class Account {

double balance;

public void deposit(double amount) {
balance = balance + amount;
}

public void withdraw(double amount) {
balance = balance - amount;
}

public void addInterest () {
balance += (balance - 1000)*.01;
}

public double getBalance() {
return balance;
}

}

这是我的 Person 类

package prob2;

import java.util.ArrayList;

public class Person {
ArrayList<Account> accounts = new ArrayList<Account>();
//int numberOfAccounts = 0;
double sum;
double balance;


public void addAccount(Account a){
//numberOfAccounts++;
accounts.add(a);
}

public Account getAccount (int i) {
return accounts.get(i);
}

public int getNumAccounts() {
return accounts.size();

}

public double getTotalBalance() {
double sum = 0;
for (Account a: accounts)
sum = sum + a.getBalance();
return sum;
}

public void applyInterest() {
for (Account a: accounts)
a.addInterest();
}
public void removeAccount(int i) {
accounts.remove(i);
//numberOfAccounts--;
}

public void depositFunds(int i, double amount) {
getAccount(i).deposit(amount);
}

public void withdrawFunds(int i, double amount) {
getAccount(i).withdraw(amount);
}

public void clearAccounts() {
accounts.clear();
}


public String toString() {

StringBuilder sb = new StringBuilder();
sb.append(String.format("Number of accounts: %d%n", accounts.size()));
for (Account a: accounts)
sb.append(String.format("Balance: %d%n", a.getBalance()));
// call sb.append in your for loop
sb.append(String.format("Total balance: %d%n", getTotalBalance()));
return sb.toString();

}

}

输出应如下所示:
账户数量:3

巴尔 = 2234.34

巴尔 = 4523.29

bal = 45.62

总余额 = 6803.25

最佳答案

如果您使用accounts.size()而不是单独跟踪numberOfAccounts,这会简化您的代码,这将解决您使用accounts.clear()的问题

要匹配预期输出,请使用 StringBuilder并附加到字符串以匹配顺序:num 个帐户、循环余额、总余额,例如:

StringBuilder sb = new StringBuilder();
sb.append(String.format("Number of accounts: %d%n", accounts.size());
// call sb.append in your for loop
sb.append(String.format("Total balance: %d%n", totalBalance);
return sb.toString();

在上面的例子中我使用了String.format syntax只是为了展示另一种格式化输出的方法。

关于java - 使用 toString 方法和 arraylist.clear 显示帐户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com