过去 2 小时我一直在寻找这个答案,但没有成功,所以我现在发布我的问题。如果它与已经提出的问题类似,我很抱歉,但我无法从已经回答的内容中得到明确的答案。
这里是:
我正在做一个学校项目,其中我们读取“计算机”对象的文本文件(这种形式总共有 8 个字段:manufacturer:model:memory:diskMemory:CPU:opticalDrive:OSVersion:零售价
)
读取文件后,您应该分隔字段并使用接受所有上述参数(分隔)的构造函数构造一个 Computer 对象数组,并将它们的引用存储在数组的每个位置。
这是我的问题: 然后显示一个菜单,用户选择几个选项,最简单的就是在 JOPtionPane 上以以下形式显示计算机对象列表:
Manufacturer1 model1 memory1 disk1 CPU1 optical1 OS1 retailPrice1
Manufacturer2 model2 memory2 disk2 CPU2 optical2 OS2 retailPrice2
依此类推,直到完成数组。我无法弄清楚如何将对象数组压缩为上面形式的单个字符串。 Computer 类对每个字段都有一个 getMethod ,我只是很难让它们以这种方式对齐。它必须位于简单的 .INFORMATION_MESSAGE 类型的 JOPtionPane 上。如果你们都需要查看计算机类代码,请告诉我,我可以发布它。这是我第一次在这个网站上发帖,如果内容不恰当,我深表歉意。
非常感谢您的帮助, 鲍勃
编辑: 输出应如下所示: http://i229.photobucket.com/albums/ee38/Yukijin-Uchiha/ScreenShot2014-03-14at113759AM_zps05b5dbb5.png
最佳答案
如果你正确地实现了Computer
类toString()
函数,你应该得到你想要的。例如:
public class Computer {
public String toString() {
return (new StringBuilder(getManufacturer()).append(":").
append(getModel()).append(":").
append(getMemory()).append(":").
append(getDiskMemory()).append(":").
append(getCPU()).append(":").
append(getOpticalDrive()).append(":").
append(getOSVersion()).append(":").
append(getRetailPrice()).
toString();
}
}
然后调用它
String computerObjAsString = aComputerInstance.toString();
要使用 Computer
对象数组来执行此操作:
StringBuilder outBldr = new StringBuilder();
for(Computer cmptr : anArrayOfComputers) {
outBldr.append(cmptr).append(System.getPropetry("line.separator", "\r\n"));
}
System.out.println(outBldr);
关于java - 如何将对象数组合并为单个格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22409087/