你好,你能帮我写代码吗?当我把它显示到命令提示符时,第二个ArrayList没有正确显示。
这是我的代码:
import java.util.Scanner;
import java.util.ArrayList;
public class Arraylist{
public static void main(String[] args) {
ArrayList<String> name = new ArrayList<String>();
name.add("Darenz");
name.add("Jason");
name.add("Kurt");
name.add("David");
name.add("Damiar");
ArrayList<Integer> grade = new ArrayList<Integer>();
grade.add(11);
grade.add(10);
grade.add(12);
grade.add(12);
grade.add(10);
for (int i = 0; 0 < name.size() && i < grade.size(); i++){
System.out.println(name.get(i)+" "+ grade.get(i));
}
}
}
这是我的代码的输出:
Darenz 11
Jason 10
Kurt 12
David 12
Damiar 10
由于第一列的宽度不一致,因此需要更改每行的间距。一种典型的方法是使用String.format(...)
,它使用格式字符串根据特定布局打印数据。
格式字符串的规范在这里。对于每条数据,格式字符串将指定转换:
所需的转换是一个字符,指示参数的格式。给定参数的有效转换集取决于该参数的数据类型。
在这种情况下,name.get(i)
表示String
,因此您希望使用%s
来表示该数据。
然后您正在寻找宽度以添加间距:
可选的宽度是一个十进制正整数,表示要写入输出的最小字符数。
宽度是要写入输出的最小字符数。如果转换值的长度小于宽度,则输出将填充"("\u0020"(,直到字符总数等于宽度。默认情况下,填充位于左侧。如果给出了"-"标志,则填充将位于右侧。如果没有指定宽度,则没有最小值。
看起来您可能想要一个13个字符的列,左对齐,后面跟着一个空格,后面跟一个整数。这是您的格式字符串:"%-13s %d"
。这是格式化后的最后一个字符串:
String.format("%-13s %d", name.get(i), grade.get(i))
尝试在for循环中执行此操作:
System.out.println(name.get(i)+"tt"+ grade.get(i));
上面制作了两个选项卡,并对齐文本。如果您愿意,也可以使用.printf((或.format((。
如果它还有问题,请告诉我!
编辑:如果名称太长,并且输出仍然显示不正确,则添加更多的t
应该有效。