Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何:在二维字符串数组中插入特定字符串_Java_Arrays_Multidimensional Array - Fatal编程技术网

Java 如何:在二维字符串数组中插入特定字符串

Java 如何:在二维字符串数组中插入特定字符串,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,例如,如何在坐标(1,1)处用字母“S”启动网格阵列 公共类生成器{ 私有静态int行=5; 私有静态int col=5; 私有静态字符串[][]网格=新字符串[行][列]; 公共静态空心网格_生成器(){ 字符串AB=“_W”; SecureRandom rnd=新的SecureRandom(); 对于(int i=0;i

例如,如何在坐标(1,1)处用字母“S”启动网格阵列

公共类生成器{
私有静态int行=5;
私有静态int col=5;
私有静态字符串[][]网格=新字符串[行][列];
公共静态空心网格_生成器(){
字符串AB=“_W”;
SecureRandom rnd=新的SecureRandom();
对于(int i=0;i

非常感谢您的帮助。

请尝试在您的
网格声明之后立即添加此代码:

static {
   grid[1][1] = "S";
}
上面的东西称为
静态初始化块
,它在类加载时运行,就在创建
网格
之后(因为
网格
也是静态的,所以在类加载时也会设置它)

无论如何,您应该注意,Java中的所有数组都是以索引
0
开始的,而不是
1
,因此将
grid[1][1]
设置为等于
“S”
将得到如下矩阵(
grid[1][1]=“S”
):

不是这样的矩阵(
grid[0][0]=“S”
):

另一方面,您正在调用
GridGenerator()
方法中的
sb.toString();
。这没有任何作用,因此我从下面删除了它:/

无论如何,在使用我建议的更改修改代码后,您应该得到以下结果:

public class Generator {
private static int row = 5;
private static int col = 5;
private static String[][] grid = new String[row][col];

static {
   grid[1][1] = "S";
}

public static void Grid_Generator() {

   String AB = "_W";

   SecureRandom rnd = new SecureRandom();
   for (int i = 0; i < grid.length; i++) {
       StringBuilder sb = new StringBuilder(row);
       for (int j = 0; j < grid[i].length; j++) {
           sb.append(AB.charAt(rnd.nextInt(AB.length())));
           grid[i][j] = sb.toString();
       }
   }
}
公共类生成器{
私有静态int行=5;
私有静态int col=5;
私有静态字符串[][]网格=新字符串[行][列];
静止的{
网格[1][1]=“S”;
}
公共静态空心网格_生成器(){
字符串AB=“_W”;
SecureRandom rnd=新的SecureRandom();
对于(int i=0;i
grid[1][1]=“S”
?你到底在问什么?是的,你说得对,我不知道为什么,但我确信我已经尝试过了,但它不起作用。无论如何,谢谢。声明的目的是什么
?你认为那句话有什么作用?嗯,那行没有任何作用,因为我已经在网格[i][j]=sb.toString()中这样做了;我只是因为有人向我建议了这样做。我想我会删除它。没问题。很高兴我能帮上忙。
[ ] [ ] [ ] [ ] [ ]
[ ] [S] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ]
...
[S] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ]
...
public class Generator {
private static int row = 5;
private static int col = 5;
private static String[][] grid = new String[row][col];

static {
   grid[1][1] = "S";
}

public static void Grid_Generator() {

   String AB = "_W";

   SecureRandom rnd = new SecureRandom();
   for (int i = 0; i < grid.length; i++) {
       StringBuilder sb = new StringBuilder(row);
       for (int j = 0; j < grid[i].length; j++) {
           sb.append(AB.charAt(rnd.nextInt(AB.length())));
           grid[i][j] = sb.toString();
       }
   }
}