好的,所以我给了一个带有几个对象的txt文件,这些对象拥有构造函数要求的描述,成本和折旧百分比。在我的tostring()
方法中,我只想要返回我输入的一些值。我遗漏了用于计算当前值等所有方法的所有方法,因为它们与我提出的问题无关。
public class InventoryItem {
private String description;
private double cost, percentDepreciated;
public static final double DEPRECIATION_MIN = 0.0,
DEPRECIATION_MAX = 1.0;
public InventoryItem(String descriptionIn, double costIn, double percentDepreciatedIn) {
description = descriptionIn.trim();
cost = costIn;
percentDepreciated = percentDepreciatedIn;
}
public String toString() {
DecimalFormat df = new DecimalFormat("#,###.00");
String output;
output = "Description: " + description;
output += "\nCost: $" + df.format(cost);
output += "\tPercent Depreciation: " + (percentDepreciated * 100 + "%");
output += "\nCurrent Value: $" + df.format(currentValue());
if (isEligibleToScrape()) {
output += "\n*** Eligible to scape ***";
}
if (percentDepreciatedOutOfRange()) {
output += "\n*** Percent Depreciated appears to be out of range ***";
}
return output;
}
}
所以我现在问的是,我得到了一个txt文件,其中包含多个对象的上述信息,如何返回每个InventoryItem对象的信息,并将其格式化为上述toString()
方法。我需要在清单类
toString()
方法中执行此操作
public class Inventory {
private String name;
private ArrayList<InventoryItem> inventoryList = new ArrayList<InventoryItem>();
public Inventory(String nameIn, ArrayList<InventoryItem> inventoryListIn) {
name = nameIn;
inventoryList = inventoryListIn;
}
public String toString() {
}
}
答案 0 :(得分:0)
我会说toString()方法有一个完全不同的目的,以这种方式实现它是一个非常糟糕的主意。你想要的是你的InventoryItem类的某种'文本序列化器'。
至于问题本身(如果你真的非常需要这样做......)你可以创建一个StringBuilder并将每个InventoryItem的toString()方法的输出附加到它。
答案 1 :(得分:0)
如果我理解正确,您需要从.txt文件中获取数据并在程序中使用该数据。要从.txt文件中获取数据,可以使用Scanner
类,如下例所示:
Scanner s = new Scanner(new BufferedReader(new FileReader("your-txt-file.txt")));
然后扫描你应该使用的每一行:
while (s.hasNext()) {
// Here you should decompose every line of string to the desired variables
}
您可以使用.substring()
删除String
的部分内容,并将这些值分配给变量。