Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2017, 10:48   #1
Pashka_Noob
 
Регистрация: 20.07.2017
Сообщений: 6
По умолчанию Разбить строку на двумерный массив

Добрый день!

Есть задание, в ходе которого необходимо разбить строку "1 3 1 2\n2 3 2 2\n5 6 7 1\n3 3 1 0" на двумерный массив String[][]. Есть подсказка, что метод split() необходимо использовать дважды. Но после первого перевода не знаю как делать дальше, в метод split массив String[] не передаётся...

Код:
import java.lang.String;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String stroka = "1 3 1 2\n2 3 2 2\n5 6 7 1\n3 3 1 0";
        String[] massiv1;
        String[][] massiv2;
        massiv1 = stroka.split(" ");
        System.out.println(Arrays.toString(massiv1));
    }
}
Понятно, что после такого перевода массив состоит не из 16, а 13 элементов, где 3-ий - "2\n2", 6-ой - "2\n5" и 9-ый - "1\n3". Подскажите, пожалуйста, как дальше методом сплит разделить по \n и загнать в двумерный массив?
Pashka_Noob вне форума Ответить с цитированием
Старый 31.07.2017, 11:04   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

https://stackoverflow.com/questions/...nto-a-2d-array

https://stackoverflow.com/questions/...g-based-on-row
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 31.07.2017, 11:21   #3
Pashka_Noob
 
Регистрация: 20.07.2017
Сообщений: 6
По умолчанию

Код:
import java.lang.String;


public class Main {
    public static void main(String[] args) {
        String stroka = "1 3 1 2\n2 3 2 2\n5 6 7 1\n3 3 1 0";
        String[] array1 = stroka.split("\n");
        String[][] array2 = new String[stroka.length()][];
        for (int i = 0; i < array1.length; i++) {
            array2[i] = array1[i].split(" ");
        }
        for (int i = 0; i < array2.length; i++) {
              System.out.println(array2[i]);
        }
    }
}
В консоли:
Код:
[Ljava.lang.String;@74a14482
[Ljava.lang.String;@1540e19d
[Ljava.lang.String;@677327b6
[Ljava.lang.String;@14ae5a5
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null

Process finished with exit code 0

Последний раз редактировалось Pashka_Noob; 31.07.2017 в 11:30.
Pashka_Noob вне форума Ответить с цитированием
Старый 31.07.2017, 11:57   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Знач неверно переписал под себя.
Код:
public static void main(String args[])
    {
        String stroka = "1 3 1 2\n2 3 2 2\n5 6 7 1\n3 3 1 0";
        String[] array1 = stroka.split("\n");
        String[][] array2 = new String[array1.length][];
        for (int i = 0; i < array1.length; i++) {
            array2[i] = array1[i].split(" ");
        }
        for (int i = 0; i < array2[0].length; i++) {
              System.out.println(Arrays.toString(array2[i]));
            
        }
    }
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 31.07.2017, 12:13   #5
Pashka_Noob
 
Регистрация: 20.07.2017
Сообщений: 6
По умолчанию

Ну я и пишу сюда, чтобы разобраться. Я новичок и только изучаю это всё, не могу понять, что не так!
Pashka_Noob вне форума Ответить с цитированием
Старый 31.07.2017, 16:04   #6
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Код:
public class Main {

    public static void main(String[] args)  {
        String stroka = "1 3 1 2\n2 3 2 2\n5 6 7 1\n3 3 1 0";
        String[] array1 = stroka.split("\n");
        String[][] array2 = new String[array1.length][];
        for (int i = 0; i < array1.length; i++) {
            array2[i] = array1[i].split(" ");
        }
        for (int i = 0; i < array2.length; i++)
            for (int j = 0; j < array2.length; j++) { 
            System.out.println(array2[i][j]);
        }
    }
}
Iron Monk вне форума Ответить с цитированием
Старый 31.07.2017, 18:33   #7
Pashka_Noob
 
Регистрация: 20.07.2017
Сообщений: 6
По умолчанию

Спасибо!
Pashka_Noob вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить строку Nastya_19 Общие вопросы C/C++ 3 06.09.2015 19:22
Разбить строку der90 PHP 4 18.02.2014 22:02
Разбить строку redenemy Общие вопросы C/C++ 1 29.05.2012 01:06
Разбить строку на массив строк с помо*щью символа-разделителя PotatoCaptain Общие вопросы C/C++ 14 14.12.2011 17:59
разбить строку Ceprey Общие вопросы C/C++ 10 24.12.2009 20:47