【问题标题】:How to assign a String array as a column to a 2d String array in java?java - 如何将字符串数组作为列分配给java中的二维字符串数组?
【发布时间】:2018-06-09 16:48:27
【问题描述】:

我在 java 中的二维数组(字符串数据类型)中遇到了问题。我有 另一个名为 arr 的数组,我想在单个字符串数组中输入名称 a 并将这些名称复制到二维数组的第 0 行的列中。请帮忙!

import java.util.Scanner;
public class Strings
{
  public static void main(String[] args)// main function
   {
    String qwert[][]=new String[5][];
    Scanner reader = new Scanner(System.in);
    System.out.println("enter no of columns");
    String arr[]= new String[5];
    int t=reader.nextInt();
    System.out.println("now arr input");
    for(int k=0;k<t;k++)
        arr[k]=reader.next();
        for(int j=0;j<t;j++)
        {
            qwert[0][j]=arr[j];
        }
        for(int b=0;b<t;b++)
            System.out.println(qwert[0][b]);
   }//main function ends
}//class ends

【问题讨论】:

  • 什么问题,有没有报错什么的

标签: java arrays string nullpointerexception assign


【解决方案1】:

String qwert[][] = new String[5][]; 创建一个包含 5 个数组的数组,这些数组都为空,因此 quert[0] = null。当您尝试在您的forqwert[0][j] = arr[j]qwert[0] 中设置为空时,您将获得NullPointerException。使用前需要初始化qwert[i]

// you need to initialize qwert[0]
qwert[0] = new String[t];
for(int j = 0; j < t; j++)
{
    qwert[0][j] = arr[j];
}

【讨论】:

    【解决方案2】:

    使用下面提供的代码。

    import java.util.Scanner;
        public class Strings
        {
          public static void main(String[] args)// main function
           {
            String qwert[][]=new String[5][];
            Scanner reader = new Scanner(System.in);
            System.out.println("enter no of columns");
            String arr[]= new String[5];
            int t=reader.nextInt();
            System.out.println("now arr input");
            qwert[0] = new String[t];
            for(int k=0;k<t;k++)
                arr[k]=reader.next();
                for(int j=0;j<t;j++)
                {
                    qwert[0][j]=arr[j];
                }
                for(int b=0;b<t;b++)
                    System.out.println(qwert[0][b]);
           }//main function ends
        }//class ends
    

    qwert在使用前需要初始化第二个维度, 否则它将在使用时生成 NullPointerException。 qwert[0] = new String[t]; 行初始化数组,以便它可以用于进一步的赋值。

    【讨论】:

    • 为什么?这段代码说明了什么?简单地转储代码而不做任何解释并不是一个好的答案。
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2011-02-16
    • 2013-10-10
    • 2010-12-19
    • 2014-01-16
    • 2020-07-27
    相关资源
    最近更新 更多