String数组结果为null
1 | package pgdp.pinguart;<br><br> import static pgdp.MiniJava.*;<br> public class PinguArt {<br><br> public static void main(String[] args) {<br> int n; <br> int j= 0 ;<br><br> int [] pi= new int [ 8 ]; <br><br><br> String[] tos= new String[ 8 ];<br><br> for ( int i= 0 ;i< 8 ;i++) {<br> n=readInt( "Bitte geben Sie eine Pingu-Art-Zahl ein::" ); //意思是请给出一个数<br><br> if(i==0) {<br> pi[i]=n*(10^(-i-1)); //把用户输入的每一个数单独放入数组<br> if(pi[i]==0) {<br> tos[i]=" "; //给每一个数赋值字符串<br><br> }else if(pi[i]==1) {<br> tos[i]="-";<br><br> }else if(pi[i]==2) {<br> tos[i]="~";<br><br> }else if(pi[i]==3) {<br> tos[i]="P";<br> }<br> }else {<br> pi[i]=(n*(10^(-i-1)))%10;<br><br><br> if(pi[i]==0) {<br> tos[i]=" ";<br><br> }else if(pi[i]==1) {<br> tos[i]="-";<br><br> }else if(pi[i]==2) {<br> tos[i]="~";<br><br> }else if(pi[i]==3) {<br> tos[i]="P";<br> }<br> }<br><br> }<br><br><br> writeLineConsole("+---[PinguArt]---+"); <br> write("|"+tos[7]+tos[6]+"|");<br> write("|"+tos[5]+tos[4]+"|");<br> write("|"+tos[3]+tos[2]+"|");<br> write("|"+tos[1]+tos[0]+"|");<br> write("+----------------+"); <br><br><br> }<br><br>} |
# 具体遇到的问题
老师我这里导入的是mini java。
题目要求是用户输入一串自定义,长度小于等于8的数。(只能输入1,2,3,0)
最后输出结果,0表示空格 “ ”;1 表示“-”;2表示“~”;3表示“P”;如果没有数字的话,也输出的为空格,并且是从后往前输出!
比如:
12010302 表示
"~ P - ~-"
122 表示
"~~- "
最后以
+----------------+
结尾
比如一个例子
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 20200220
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 10121201
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 12
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 10302101
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 2303120
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 1231200
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 20201210
Bitte geben Sie eine Pingu-Art-Zahl ein:
> 120012
+---[PinguArt]---+
| ~~ ~ ~- ~-~- -|
|~- - -~ P -|
| ~-P P~ ~-P~- |
| -~- ~ ~~- ~- |
+----------------+
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
老师,我不知道为什么,我输出的值全是空的。我的思路是正确的吗?(我觉得我的思路是对的哈哈)
谢谢老师费心了
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
17
收起
正在回答
3回答
同学你好,老师给同学提供一种Java代码的实现思路。如下所示:
使用substring()截取字符,从i开始i+1结束,然后根据截取下来的字符进行判断。实现代码如下所示:
1 | package pgdp.pinguart;<br><br> import java.util.Scanner;<br> public class PinguArt {<br> public static void main(String[] args) {<br> Scanner sc= new Scanner(System.in);<br> String n;<br> int j = 0 ;<br> String[] pi = new String[ 8 ];<br> String[] tos = new String[ 8 ];<br> // n = new String("120012");<br> // 键盘输入<br> n = sc.next();<br> for (int i = 0; i < 8; i++) {<br> // 当字符串长度大于1时,进行截取否则赋值为0<br> if (n.length()>i) {<br> // 截取字符串<br> pi[i] =n.substring(i, i+1);<br> // 使用equals()进行判断<br> if (pi[i].equals("0")) {<br> tos[i] = " ";<br> } else if (pi[i].equals("1")) {<br> tos[i] = "-";<br> } else if (pi[i].equals("2")) {<br> tos[i] = "~";<br> } else if (pi[i].equals("3")) {<br> tos[i] = "P";<br> } <br> }else {<br> tos[i] = " ";<br> }<br> } <br> System.out.println("+---[PinguArt]---+");<br> System.out.println("|"+tos[7]+tos[6]+"|");<br> System.out.println("|" + tos[5] + tos[4] + "|");<br> System.out.println("|" + tos[3] + tos[2] + "|");<br> System.out.println("|" + tos[1] + tos[0] + "|");<br> System.out.println("+----------------+");<br><br> }<br>}<br> |
注:一般情况下,并不是使用mini Java 进行开发,建议同学学习使用Java语法。
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧