Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Помогите с алгоритмом


Автор: chiffa 5.7.2014, 01:04
Всем доброй ночи. Убил весь вечер - что то ничего в голову прийти не может. Задача стоит следующая: есть таблица, что то вроде такого

xxx  www rrr
ttt   sss    aaa
fff   yyy    hhh

Необходимо записать в массив(?...) данные из этой таблици по принципу: [номер строки] [номер ячейки] = "значение", то есть

[0] [0] = xxx
[0] [1] = www
.....
[3] [1] = yyy


Идеально сюда подходил бы двухмерный массив типа String [] [] = new String [] [], но усложняется тем, что заранее размер таблицы не известен.

Думал делать через HashMap, но получается накапливание значений и HashMap.get (3) имеет значение всей таблицы.

Подскажите, как правильно реализовать подобное? Буду весьма признателен!

Автор: LSD 7.7.2014, 07:17
Цитата(chiffa @  5.7.2014,  02:04 Найти цитируемый пост)
Идеально сюда подходил бы двухмерный массив типа String [] [] = new String [] [], но усложняется тем, что заранее размер таблицы не известен.

И что мешает сделать List<List<String>> или List<String[]> если количество столбцов известно?

Автор: CompWorm 8.7.2014, 23:37
тупо, циклами...
Код

    private static String[][] getArray(String text, String linesDelimeter, String blocksDelimeter)
    {
        String[]allStrings=text.split(linesDelimeter);
        String[][] result = new String[allStrings.length][StringUtils.countMatches(allStrings[0], blocksDelimeter)];
        int y=0;
        for (String line : allStrings){
            result[y]=line.split(blocksDelimeter);
            ++y;}
        return result;
    }

...

String[][] result = getArray("hello world\nHELLO WORLD", "\n", " ");


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pomogite-s-algoritmom-id53b7254bae2015b7278b4567#findElement_E7045_53bc5684ae2015ad48d30a12_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)