基本的には、ユーザーに行を入力するよう求めています。最初の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;
}
}
}
を試してみました。
for(int i = 0; i< world.length; i++){
for(int j = 0; j <world[i].length; j++){
if(world[i][j] = true){
System.out.print("#");
}
else{
System.out.print(".");
}
唯一の問題は、ユーザーが少なくとも10文字を入力しないと、charAtを実行できないためエラーが発生するということです。 ここでは、ユーザー入力がどのように表示されるか、どのようにすべきかの例を示します。 userinputsこの
#..jh##pop#jfhjdfh#
..fjd#jdjk#kkjnjk
dklsd#klmsfkdfmsdf
#.d.sd
##########
fjdfgk#3fdlksf
l#ldflfsdfl#dflsdf
は、それは少なくとも10を持っていないので、ユーザは#の.d.sdを入力したことを第5のラインのようなものが唯一の問題である。この
#....##...
.....#....
..........
.....#....
#.........
##########
......#...
.#........
のように印刷する必要がある場合文字。それが何をすべきかは、上に印刷されたものと同じです。 誰かが私がこれを解決できる方法を知っていれば、それは素晴らしいことでしょう。あなたは境界が
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(world [i] [j] = true){System.out.print(world [i] [j]);代わりに:if(world [i] [j] = true){ System.out.print( "#"); –
'if(world [i] [j] = true)'が間違っています。その値が真であるかどうかを調べるのではなく、word [i] [j]に値を割り当てます。ブール値をtrueまたはfalseと比較することは決してありません。ブール値であるため、値自体を使用してください。 if(word [i] [j]){...} 'またはfalseをチェックするif(!word [i] [j]){}'これは、 '='を使うことの問題を回避します。本当に意味した '==' – FredK