Java 如果没有要检查的字符,如何设置值

Java 如果没有要检查的字符,如何设置值,java,char,set,Java,Char,Set,所以基本上我要求用户键入一行。它只接受前10个字符。如果按enter键,它只会将整行设置为false 然后,如果char为#,我想将数组设置为true,否则其他所有内容都将为false。所以我试过这个 boolean[][] world = new boolean [8][10]; for(int i = 0; i< world.length; i++){ String Temp = userinput.nextLine(); for(int j = 0; j <world[i].

所以基本上我要求用户键入一行。它只接受前10个字符。如果按enter键,它只会将整行设置为false

然后,如果char为#,我想将数组设置为true,否则其他所有内容都将为false。所以我试过这个

boolean[][] world = new boolean [8][10];

for(int i = 0; i< world.length; i++){
String Temp = userinput.nextLine();
for(int j = 0; j <world[i].length; j++){

if( temp.equals("")){
world[i][j] = false;

}
Else if( temp.charAt(j) == 35){
world[i][j] = true;
}
else { 
world[i][j] = false;
}
}
}
它应该像这样打印出来

#....##...
.....#....
..........
.....#....
#.........
##########
......#...
.#........
所以像用户输入#.d.sd的第五行这样的东西是唯一的问题,因为它至少没有10个字符。它应该做的就像上面打印的一样,只需用“.”填充这些点
如果有人知道我如何解决这个问题,那就太好了。

您需要对字符串
temp
进行边界检查,比如

if( temp.equals("")){
world[i][j] = false;
}
else if (temp.length() <= j) { // Bounds check
  world[i][j] = false
}
Else if( temp.charAt(j) == 35){
world[i][j] = true;
}
else { 
world[i][j] = false;
}
if(温度等于(“”){
世界[i][j]=假;
}

else if(temp.length()将此条件添加到此行


if(temp.equals(“”)| | temp.length()不是100%确定我得到了你想要的东西,但它可能是:if(world[I][j]=true){System.out.print(world[I][j]);而不是:if(world[I][j]=true){/code>不正确。它为单词[I][j]赋值不要检查它的值是否为真。永远不要将布尔值与真或假进行比较,只需使用值本身,因为它是布尔值。因此
if(word[i][j]){…}
或要检查假,
if(!word[i][j]){}
这避免了使用
=
的问题,而你真正的意思是
=
哦,是的,我甚至没有想到。哇,谢谢。
#....##...
.....#....
..........
.....#....
#.........
##########
......#...
.#........
if( temp.equals("")){
world[i][j] = false;
}
else if (temp.length() <= j) { // Bounds check
  world[i][j] = false
}
Else if( temp.charAt(j) == 35){
world[i][j] = true;
}
else { 
world[i][j] = false;
}