【发布时间】:2017-10-30 06:33:29
【问题描述】:
我想创建一个包含一组数据的对象(Wine),其中每个数据元素的大小不同(年份、地区、制造商、品种等)。我希望能够使用每个元素的设置长度以表格格式打印出来。我已经搜索并尝试了很多方法,但找不到答案。
我的类定义如下所示:
public class Wine {
char[] year;
char[] area; // Wine area
char[] brand; // Wine brand
char type; // R or W or F
char[] variety;
char bin;
int numbottles;
我可以从 txt 文件中读取数据,但元素被缩短为文本内容加上一个空格,因此表格丢失了。
我在我的主要部分尝试过这个,但没有成功:
wine.year = rightpad(tokens[0].toCharArray(), 5) ;
wine.area = rightpad(tokens[1].toCharArray(), 9);
....
static char[] rightpad(char[] text, int leng) {
for(int i = text.length - 1; i < leng; i++){
text = (new String(text) + ' ').toCharArray();
}
return text;
}
任何建议将不胜感激。
克里斯·A
【问题讨论】:
-
为什么不只是一个
String而不是char数组? -
您的预期和实际输出是多少?
-
我使用了 String.format 方法但没有成功。我逐行导入列表,将其拆分并将每个元素添加到 Wine 对象(首先尝试将相关项目格式化为所需长度),然后创建一个对象 Array list wineinfo (ArrayList
wineInfo = null;) .然后使用 wineinfo.add 将每种葡萄酒添加到数组中。当我打印出数组时,它只在每个元素之间显示一个空格。 -
@ChrisAppleby 请展示你如何使用它。我的回答告诉你如何使用它来添加一些填充......我猜不出你是如何使用它来获得正确的输出的。请用问题编辑问题...