2013-09-27 106 views
2

大家好,在过去的几天里,我一直在努力将1D字符串数组转换为2D char数组。我的1D数组工作正常(零问题),但是当我转换为二维字符数组时,它只打印出第一行。以下是我的代码。任何反馈意见。谢谢!Java 2d char数组

for(int i = 0; i < array1.length; i++) //prints out array 
{ 
    System.out.println("1d " + number[i]); //prints the line from the file 
} 
final int ROWS = 7; 
final int COLS = 5; 

char[][] 2darray = new char [ROWS][COLS]; 

for (int i = 0; i < array.length; i++) 
{ 
    2darray[i]= array1[i].toCharArray(); 
} 

for (int row = 0; row < ROWS; row++) 
{ 
    for (int col = 0; col < COLS; col++) 
    { 
     System.out.print(2darray[row][col]); 
    } 
    System.out.println(); 
} 
+0

你似乎有3个阵列。 –

+1

这不会编译;变量名称不能以数字开头。 – arshajii

+0

在两个实例中,你有'array.length',但是这应该是'array1.length() - 1'另外,你需要有'row nhgrif

回答

3

您不能让变量以Java中的数字开头。我建议相应地改变你的变量并尝试一下。

char[][] array2 = new char [ROWS][COLS]; 

for (int i = 0; i < array.length(); i++) 
{ 
    array2[i]= array1[i].toCharArray(); 
} 

for (int row = 0; row < ROWS; row++) 
{ 
    for (int col = 0; col < COLS; col++) 
    { 
     System.out.print(array2[row][col]); 
    } 
    System.out.println(); 
} 
+0

这仍然有错误(不是你的,他的)。 'array.length'应该是'array1.length() - 1','row nhgrif

+0

@nhgrif'array1.length()'不能编译 – Cruncher

+0

他的字符串数组叫什么?我以为他的字符串数组是array1? – nhgrif

1

看评论

for(int i = 0; i < array1.length; i++) //prints out array 
{ 
    // Why did you use number ? 
    System.out.println("1d " + array1[i]); //prints the line from the file 
} 

// You don't need these now. 
// final int ROWS = 7; 
// final int COLS = 5; 


// This will initialize 2darray of size as required according to length of array1 
char[][] 2darray = new char [array1.length][]; 

for (int i = 0; i < array1.length; i++) // What is `array`? 
{ 
    2darray[i]= array1[i].toCharArray(); 
} 

for (int row = 0; row < 2darray.length; row++) // Use actual size of 2darray row 
{ 
    for (int col = 0; col < 2darray[i].length; col++) // use actual size of 2darray column 
    { 
     System.out.print(2darray[row][col]); 
    } 
    System.out.println(); 
}