【问题标题】:Java 2d char array [duplicate]Java 2d char数组[重复]
【发布时间】:2013-10-03 22:54:34
【问题描述】:

大家好,在过去的几天里,我一直致力于将一维字符串数组转换为二维字符数组。我的一维数组工作正常(零问题),但是当我转换为二维字符数组时,它只打印出第一行。下面是我的代码。任何反馈表示赞赏。谢谢!

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();
}

【问题讨论】:

  • 你似乎有 3 个数组。
  • 这不会编译;变量名不能以数字开头。
  • 在两种情况下你有array.length,但这应该是array1.length()-1 此外,你需要有row &lt; ROWS-1col &lt; COLS-1。这能编译吗?这是否执行没有错误?
  • 到目前为止,它确实可以编译
  • @user2817804 你之前的问题怎么了? 1DStringTo2DChar 没有帮助?

标签: java arrays string char


【解决方案1】:

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();
}

【讨论】:

  • 这仍然有错误(不是你的,他的)。 array.length 应该是 array1.length()-1row &lt; ROWS 应该是 row &lt; ROWS-1col &lt; COLS 应该是 col &lt; COLS-1
  • @nhgrif array1.length() 无法编译
  • 他的字符串数组叫什么?我以为他的字符串数组是array1?
  • 问题是它只打印第一行,在第一行之后打印出空白行
  • @nhgrif length 是索引的数量,所以我认为你不需要使用length-1,只要你使用的是&lt; 而不是&lt;=跨度>
【解决方案2】:

查看评论

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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2020-12-23
    • 2022-01-18
    相关资源
    最近更新 更多