gpt4 book ai didi

java - 我在多维数组的特定索引处输入和显示字符时遇到问题

转载 作者:行者123 更新时间:2023-12-01 15:40:19 24 4
gpt4 key购买 nike

大家好,我目前正在做一个作业,我们必须提示用户他想要显示什么对象(矩形或三角形),然后提示用户输入对象的高度和宽度。最后我们提示用户用于开始“绘制对象”的 x 和 y 坐标我们使用 [20][20] 字符数组制作“ Canvas ”,并使用该数组存储并稍后显示该字符,以便“绘制”对象。

问题:如果我为用户选择的坐标选择 x=0 , y=0 ,则一切正常。如果我为 x 和 y 选择任何其他值,则输出全部为空白。代码如下,任何人都可以提供有关发生了什么事的提示吗?感谢您的帮助。

import java.util.*;

public class Multidimensional {

public static char[][]canvas = new char[20][20];
public static int height, width, x, y;
public static char userChar;

public static void setRectangle()
{
Scanner kb = new Scanner(System.in);
System.out.println("Enter height");
height = kb.nextInt();
System.out.println("enter Width");
width = kb.nextInt();
System.out.println("Enter character");
String input = kb.next();
userChar = input.charAt(0);

System.out.println("Enter location on canvas (x and y coordinate)");
x = kb.nextInt();
y = kb.nextInt();



//loop for the rows
for(int row=0; row<= height-1; row++){

//loop for the columns

for(int column=0;column<=width-1;column++ ){

canvas[row+y][column+x] = userChar;
//System.out.print("ROW+Y= " + (row+y));
//System.out.print(" COLUMN+X= " + (column+x));

}


}

//displaying the array (for test purposes, not in final code)
for(int row=0 ; row< 20; row++){

for(int column=0; column <20; column++){


System.out.print(canvas[row][column]);
}
System.out.println();
}

}


public static void main(String[] args) {
String userChoice;
Scanner kb =new Scanner(System.in);
boolean userQuit = false;

while(userQuit ==false){


System.out.println("1. Type S to draw a rectangle.");
System.out.println("2. Type T to draw a triangle.");
System.out.println("3. Type D to display.");
System.out.println("4. Type Q to quit.");
userChoice = kb.next();

if(userChoice.equalsIgnoreCase("s"))
{Multidimensional.setRectangle();
}
else if(userChoice.equalsIgnoreCase("q"))
{break;}

}
}

}

最佳答案

我不确定你想做什么。但是如果你初始化你的 Canvas 数组,你的问题就会得到解决。

在你的 main 中试试这个:

for(int i = 0; i < 20 ;i++)
for(int j = 0; j < 20 ;j++)
canvas[i][j]=' '; //or any character you like

附:小心你的x和y,因为如果你不检查width+x和height+y是否小于20,你可能会得到一个indexOutOfBound错误,因为你像这样声明canvas: char[][]canvas = new char [20][20];并且不随用户输入动态变化

关于java - 我在多维数组的特定索引处输入和显示字符时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com