我正在搞乱二维数组,并试图构建一个程序,将字符串放入二维字符数组中,并用随机字母填充剩余的空格。我可以尽全力用随机字符填充数组,但我无法弄清楚如何将字符串存入char数组。这就是我正在考虑以伪代码解决问题的原因,因为我无法正确理解这一点。Java:将字符串添加到多维字符数组中
我救了串到名为
words
一个ArrayList(已编码的这部分)。我想去通过每个元素在ArrayList和比较每一个与空间的char数组中可用
确定它不会去出界,如果添加的长度,并将这些“坐标”保存到另一个ArrayList中。
然后,使用这些坐标,我会将这些单词逐个转换为字符,并用它们替换已经在数组中的随机字符。
这一切对我来说很有意义,我的头和写下来(请让我现在如果事实并非如此),但问题是我不知道如何真正落实“决定在那里赢得”超越界限“的一部分。具体而言,我不知道如何真正确定数组中的哪些空间太靠近“边缘”,以便我添加单词而不会超出界限。
我真的很感谢任何帮助,并对文本墙感到抱歉。谢谢!
编辑:这是我到目前为止的代码。正如我之前提到的,我没有添加我以上面伪代码写的部分,因为我不知道如何。
import java.util.Scanner;
import java.util.ArrayList;
public class BuildArray
{
private char [][]arrayBoard;
private int row, col;
private String inWord;
ArrayList<String> words = new ArrayList<String>();
public void build()
{
Scanner input = new Scanner(System.in); //takes in user input
System.out.println("How many rows?");
row = input.nextInt();
System.out.println("How many columns?");
col = input.nextInt();
input.nextLine();
do{
System.out.println("Add a word to array (quit to stop) >");
inWord = input.nextLine();
if(!inWord.equals("quit"))
{
words.add(inWord);
}
}while(!inWord.equals("quit"));
fillArray();
}
public void fillArray()
{
arrayBoard = new char[row][col];
for(int rows = 0; rows < board.length; rows++)
{
for(int cols = 0; cols < board[rows].length; cols++)
{
arrayBoard[rows][cols] = randomChar();
}
}
}
public char randomChar()
{
char alphabet[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z'};
return alphabet[(char)(alphabet.length * Math.random())];
}
}
你可以发布一个输入字符串在解析前后应该是什么样子的例子吗? ** board **变量是什么? –