Java 将单词放入二维数组中

Java 将单词放入二维数组中,java,arrays,algorithm,Java,Arrays,Algorithm,有没有办法将一个单词放置在2d数组中的特定位置?例如,我想给出单词,选择垂直或水平和位置((3,3)或(3,4)或(5,6)等),单词将被放置在该位置。这是我的数组代码 char [][] Board = new char [16][16]; for (int i = 1; i<Board.length; i++) { if (i != 1) { System.out.println("\t"); System.o

有没有办法将一个单词放置在2d数组中的特定位置?例如,我想给出单词,选择垂直或水平和位置((3,3)或(3,4)或(5,6)等),单词将被放置在该位置。这是我的数组代码

char [][] Board = new char [16][16];


    for (int i = 1; i<Board.length; i++) {
        if (i != 1) {
            System.out.println("\t");
            System.out.print(i-1);
        }

        for (int j = 1; j <Board.length; j++) {
            if ((j == 8 && i == 8) ||(j ==9 && i == 9) ||(j == 10 && i == 10) ||(j == 2        && i == 2) )
            {
                Board[i][j] = '*';
                System.out.print(Board[i][j]);
            }
            else {
                if (i == 1) {
                    System.out.print("\t");
                    System.out.print(j-1);
                }
                else {
                   Board[i][j] = '_';
                    System.out.print("\t");
                    System.out.print(""+Board[i][j]);
}

}
char[]Board=新字符[16][16];
对于(int i=1;i
有没有办法将一个单词放置在2d数组中的特定位置

是的,您可以实现它。伪代码如下:

public void placeWordHorizontally(char[][] board, String word, int x, int y) {
    for (int i = 0; i < word.length(); i++) {
        if (y + i >= board[x].length) {
             // fail ... edge of board
        } else if (board[x][y + i]) == '*') {
             // fail ... blocked.
        } else {
             board[x][y + i] = word.charAt(i);
        }
    }
}
public void placeword水平(char[]board,String word,int x,int y){
for(int i=0;i=线路板[x]。长度){
//失败…板的边缘
}如果(板[x][y+i])=='*'),则为else{
//失败…被阻止。
}否则{
板[x][y+i]=字字符(i);
}
}
}
要进行垂直案例,请将
i
等添加到
x
位置


我不会给你确切的代码,因为如果你自己填写细节,你会学到更多

我做了这个“char*[]]Board=new char[16][16];”并得到了消息“不是一个语句。找不到符号:Board”…我应该做些什么吗?哦,你的意思是你想指定一个起始索引和方向,这样如果我说placeWord(“foo”,3,4,水平),你最终会得到Board[3][4]=“f”,Board[3][5]=“o”,等等?是的,这正是我想要的。等等,这是Java?我以为这是C++。算了吧。事实上,您应该声明一个
字符串[][]
!当我这样做“String[][]”并放置一个单词时,该单词的所有字母都放在相同的位置(例如(2,3))。我希望第一个字母放在(2,3)中,第二个字母放在(2,4)中等等……::谢谢Stephen的回复。我正在编写你的代码,尽管这有点困难,因为我是java新手。欢迎任何其他帮助……:)如果你不告诉我们为什么你不能让它工作,我们就帮不了你。大体上,我创建了我在第一篇文章中写到的板,我创建了一个类,其中包含您编写的公共void placeword横向…然后我在main中输入值来测试它(这些值是“String s=“abc”;int k=2;int m=3;b.placeword横向(Board,s,m,m);System.out.println(Arrays.deepToString(Board));”它返回两个数组——第一个是带星号的数组,第二个是空数组,其中有我输入的值……我很困惑,我也试过用这个来打印电路板(int i=0;我用调试器运行代码,看看它在做什么。我希望你注意到我写的代码不完整,有缺陷。