下面的代码询问网格大小,然后从键盘获取输入值并将内容存储在“str”中。现在我想将“str”的内容存储在名为char [] [] board的二维字符数组中。我怎么做?请耐心等待我不熟悉编码。
Scanner s = new Scanner(System.in);
System.out.println("Enter grid size");
int t = s.nextInt(); // read number of elements
s.nextLine(); // consume new line
System.out.println("Enter the values");
int d = s.nextInt(); // read number of elements
s.nextLine();
String str[] = new String[t];
for(int k=0;k<t;k++) {
str[k]=s.nextLine();
}
样本输出:
Enter grid size
3
Enter the values
123
234
456
确保输入的所有字符串的长度相同,否则会导致错误。在创建2D数组时,我们必须指定行和列。为了获得列大小,我们尝试查找第一个字符串输入的长度。
Scanner in = new Scanner(System.in) ;
System.out.println("Enter grid size") ;
int size = in.nextInt() ; // size is the total number of incoming strings
String str = in.next() ;
int col = str.length() ; // getting the length of the fisrt string to get column size for the grid
char grid[][] = new char[size][col] ;
grid[0] = str.toCharArray() ;
for (int i = 1 ; i < size ; i++)
{
str = in.next() ;
grid[i] = str.toCharArray() ;
}
如果您只需要阅读或通过(不编辑/更改)字符串的字符,您可以使用str.charAt(index
)方法。你不需要创建一个2D数组char [] []希望这有帮助!
你需要的是“可能”:
// so far so good...
// not: String str[] = new String[t];, but:
char [][] str = new char[t][];
for(int k=0;k<t;k++) {
str[k] = s.nextLine().toCharArray();
}
所以:
str
的类型更改为char[t][]
。str[k]
设置为String.toCharArray();
(其中String
是s.nextLine()
)。见javadoc:String.toCharArray()