【发布时间】:2017-04-12 09:55:06
【问题描述】:
我正在尝试编写代码,您在控制台中输入一个整数,然后您输入的整数显示得更大,由字母组成(如 ascii 艺术)。
假设输入是112。然后输出将是
# # #####
## ## # #
# # # # #
# # #####
# # #
# # #
##### ##### #######
我的代码将有相同的输出,只是不在同一行:(
它会在另一个下打印一个数字。从我的代码中你可以看到原因:
import java.util.Scanner;
public class Tester {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String any = input.nextLine();
String[] sArray = any.split("");
for(int i=0; i<sArray.length; i++){
if(sArray[i].equals("1")){
System.out.println(" # ");
System.out.println(" ## ");
System.out.println("# # ");
System.out.println(" # ");
System.out.println(" # ");
System.out.println(" # ");
System.out.println("#####");
}
if(sArray[i].equals("2")){
System.out.println(" ##### ");
System.out.println("# #");
System.out.println(" #");
System.out.println(" ##### ");
System.out.println("# ");
System.out.println("# ");
System.out.println("#######");
}
}
}
}
我必须以某种方式一次打印所有内容,而不是使用println 作为我的代码的单个输出..
也许有一种简单的方法可以解决这个问题,最好不要更改我的整个代码?我可以想象它也可以用二维数组来完成,但不确定。提示也很受欢迎。这不是功课。
【问题讨论】:
-
println插入新行 -print没有。但是你需要逐行打印,即改变你的循环逻辑。 -
@assylias 我知道,但这怎么能在这里工作?如果我用 print 替换 println,输出看起来会更可怕:D
-
您当前的逻辑与要求相差甚远,因为您是垂直打印但您想水平打印。
-
使用 StringBuffer 并为每一行追加。