[英]Printing for value of ArrayList Integer
我正在开发一款基本上有成堆硬币的小游戏,你必须从一堆硬币中取出一些硬币,然后程序打印出以下格式的结果:
Pile 1: ****
Pile 2: *****
Pile 3: **
我有一个数组列表,存储所有这些值,如下所示:
List<Integer> coins = new ArrayList<>();
[4,5,2]
但我无法弄清楚如何正确打印*。
如何编写此代码以打印元素中每个值的*。 IE 4 *如果元素值是4?
这是我目前的方法:
static void printGameState(){
for(int i = 0; i <= coins.size()-1; i++){
int k = i+1;
System.out.print("Pile " + k + ": ");
for(int j = 0; j <= coins.indexOf(i); j++){
System.out.print("*");
}
}
}
您必须通过访问数组coins[i]
来查看不同堆栈的值,而不是使用堆栈数作为堆栈高度:
static void printGameState(){
for(int i = 0; i < coins.size(); i++) {
// Build the coin stack
String coinStack = "";
for(int j = 0; j < coins.get(i); j++) {
coinStack += "*";
}
// And output it
System.out.println("Pile " + (i + 1) + ": " + coinStack);
}
}
而不是使用这个条件:
j <= coins.indexOf(i);
使用这个条件:
j < coins.get(i);
试试吧:
for(int i = 0; i <= coins.size()-1; i++) {
int k = i+1;
System.out.print("Pile " + k + ": ");
for(int j = 0; j < coins.get(i); j++) {
System.out.print("*");
}
System.out.println();
}
你会得到:
Pile 1: ****
Pile 2: *****
Pile 3: **
你应该使用<而不是<=。 此外,您应该能够使用get(i)
获取索引i处的值。
static void printGameState(){
for(int i = 0; i < coins.size(); i++){
int k = i+1;
System.out.print("Pile " + k + ": ");
for(int j = 0; j < coins.get(i); j++){
System.out.print("*");
}
}
}
您也可以通过形成另一种方法来打印使它有点清洁*
如:
public void ast(int n){
for(int i=0; i<n; i++){
System.out.print("*");
}
}
然后printGameState循环的内容将是
int k = i+1;
System.out.print("Pile " + k + ": ");
ast(coins.get(i));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.