Как назначить массив строк в качестве столбца для 2d массив строк в Java? - PullRequest
0 голосов
/ 09 июня 2018

Я столкнулся с проблемой в 2d массивах (строковый тип данных) в Java.у меня есть другой массив с именем arr, и я хочу ввести имена в один строковый массив a и скопировать эти имена в столбцы строки 0 массива 2d.пожалуйста помогите!

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

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

String qwert[][] = new String[5][]; создает массив из 5 массивов, все из которых равны нулю, таким образом quert[0] = null.Когда вы попытаетесь получить в вашем for, qwert[0][j] = arr[j], qwert[0] значение NULL, вы получите 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];
}
0 голосов
/ 09 июня 2018

Используйте приведенный ниже код.

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]; инициализирует массив, чтобы его можно было использовать для дальнейшего присвоения значения.

...