举例:
String[][] list={{"1","张三"},{"2","李四"},{"3","王五"}}这个的意思就是1行1列的值为“1”、2行1列的值为“2”、3行1列的值为“3”、1行2列的值为“张三”、2行2列的值为“李四”、3行2列的值为“王五”。也可以通过list[0][0]的形式来获取到1行1列的值为“1”,以此类推即可。
String str="abcdefg"char[] stringArray=str.toCharArray()
double n=(double)Math.sqrt(str.length())
int num=(int)Math.ceil(n)
char square[][]=new char[num][num]
int i=0
for(int row=0row <num &&i <str.length()row++) {
for(int column=0column <num &&i <str.length()column++) {
square[row][column]=stringArray[i]
System.out.print(square[row][column] + " ")
i++
}
System.out.println("")
}
你的这个逻辑有问题,不要最外面那个for了
首先说明第一点,你这个代码只是给了一个片段,无法全局的对你编写的代码评估并确认问题。现在可以修改的是获取控制台输入的代码可以修改为:
Scanner scanner=new Scanner(System.in)
int n = scanner.nextInt()
第二步骤:java.怎么对长度未知的二维字符数组进行赋值,代码完整编写。
主要使用知识点1:接收控制台输入 Scanner scanner=new Scanner(System.in)
主要知识点2:双层for循环解决二维数组的赋值问题
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in)
System.out.print("请输入一维数组的长度:")
int n = scanner.nextInt()
//换行
System.out.println()
System.out.print("请输入二维数组的长度:")
int m = scanner.nextInt()
//换行
System.out.println()
//创建数组
String[][] strs = new String[n][m]
for (int i = 0i <strs.lengthi++) {
for (int j = 0j <strs[i].lengthj++) {
System.out.print("请输入第"+(i+1)+"个数组的第"+(j+1)+"个元素的值:")
strs[i][j] = scanner.next()
System.out.println()
}
}
System.out.println(strs)
}