我正在尝试编写一个代码,您在控制台中输入一个整数,然后您输入的整数显示得更大,由字母组成(如 ascii art)。
所以假设输入是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
作为我的代码..
也许有一种简单的方法可以解决这个问题,最好不要更改我的整个代码?我可以想象它也可以用二维数组来完成,但不确定。也非常欢迎提示。这不是家庭作业。
肮脏但有效:
private static final Map<Integer, String[]> art = new HashMap<Integer, String[]>() {{
put(1, new String[] {
" # ",
" ## ",
" # # ",
" # ",
" # ",
" # ",
" ##### " });
put(2, new String[] {
" ##### ",
"# #",
" #",
" ##### ",
"# ",
"# ",
"#######" });
}};
public static void main(String[] args) {
int[] input = { 1, 1, 2 };
for (int row = 0; row < 7; row++) {
for (int num : input) {
System.out.print(art.get(num)[row] + " ");
}
System.out.println();
}
}
我跳过了扫描仪代码并假设输入1 1 2
.
Output
# # #####
## ## # #
# # # # #
# # #####
# # #
# # #
##### ##### #######
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)