Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringBuffer, Заполнение массива 
:(
    Опции темы
___Yuri
Дата 23.9.2005, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 2.3.2005
Где: МО

Репутация: нет
Всего: нет



Массив пытаюсь заполнить объектами StringBuffer и потом выдать содержимое на экран. Не проходит - почему не понимаю. smile

Код:
Код

public static void main(String[] args)
    {
        final int ML=10;
//create
        StringBuffer [][][] tda = new StringBuffer [ML][][];
        for (int i = 0; i < ML; i++)
            {
            tda[i]= new StringBuffer [ML -i][];
            }

        for (int i = 0; i < ML; i++)
        for(int j = 0; j < ML - i; j++)
            {
            tda [i][j] = new StringBuffer [(i+1)*(j+1)];
            }
            
        
//append
        String s;
        for (int i = 0; i < ML; i++)
        for (int j = 0; j < ML - i; j++)
        for (int k = 0; i < (i+1)*(j+1); k++)
            {
                s = tda[i][j][k].append("x= ").append(i).append("y= ").append(j).append("z= ").append(k).toString();
                System.out.println(s);
            }    
    }


Выдает ничто иное как :
Exception in thread "main" java.lang.NullPointerException
at arr.main(arr.java:38)
Объясните pls подробно smile

Это сообщение отредактировал(а) Lamer George - 23.9.2005, 10:11
PM MAIL ICQ   Вверх
allex
Дата 23.9.2005, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 5.9.2005

Репутация: нет
Всего: нет



А причем тут StringBuffer? tda[i][j][k] == null
Ошибка здесь: for (int k = 0; i < (i+1)*(j+1); k++)


Это сообщение отредактировал(а) allex - 23.9.2005, 09:54
PM MAIL   Вверх
___Yuri
Дата 23.9.2005, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 2.3.2005
Где: МО

Репутация: нет
Всего: нет



Не помогает! Тут багнул - согласен.
Возмущается на строку:
s = tda[i][j][k].append("x= ").append(i).append("y= ").append(j).append("z= ").append(k).toString();
smile
Добавлено @ 10:17
Т.е. на строку 24 в отредактированной части кода...
Пишет то же самое:
Exception in thread "main" java.lang.NullPointerException
PM MAIL ICQ   Вверх
anonymouse
Дата 23.9.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



Ну правильно пишет. Ты инстанцию массива создал а самого StringBuffera нет
(где new StringBuffer() smile )

--------------------
Много чего интересного...
PM MAIL   Вверх
batigoal
Дата 23.9.2005, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



На самом деле, я ни черта не понял из кода, что ты хочешь сделать.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
___Yuri
Дата 23.9.2005, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 2.3.2005
Где: МО

Репутация: нет
Всего: нет



Вставил в 23:
tda[i][j][k] = new StringBuffer(); - по идее создаю свой String Buffer для каждой ячейки.
- правильно?
Знаю, что неправильно. Срабатывает раз и останавливается. Куда его?
Добавлено @ 10:59
Lamer George, я хочу создать "кривой" 3 мерный массив с об. типа StringBuffer и заполнить его тройкой соответствующих координат
PM MAIL ICQ   Вверх
batigoal
Дата 23.9.2005, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Вот простой пример для двухмерного массива:
Код

public class C
{
    public final static int MAX_LENGTH = 10;
    
    public static void main(String[] args)
    {
        StringBuffer [][] tda = new StringBuffer[MAX_LENGTH][];
        for(int i=0; i<MAX_LENGTH; i++)
        {
            tda[i] = new StringBuffer [i+1];
            for(int j=0; j<tda[i].length; j++)
            {
                tda[i][j] = new StringBuffer("x = ");
                tda[i][j].append(i);
                tda[i][j].append(", y = ");
                tda[i][j].append(j);
                tda[i][j].append(" | ");
                System.out.print(tda[i][j].toString());
            }
            System.out.println();
        }
    }
}



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
anonymouse
Дата 23.9.2005, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



Код

    public static void main(String[] args) {
        final int ML = 10;
        // create
        StringBuffer[][][] tda = new StringBuffer[ML][][];
        for (int i = 0; i < ML; i++) {
            tda[i] = new StringBuffer[ML - i][];
        }
        for (int i = 0; i < ML; i++)
            for (int j = 0; j < ML - i; j++) {
                tda[i][j] = new StringBuffer[(i + 1) * (j + 1)];
            }

        // append
        String s;
        for (int i = 0; i < ML; i++)
            for (int j = 0; j < ML - i; j++)
                for (int k = 0; k < (i + 1) * (j + 1); k++) {
                    tda[i][j][k]=new StringBuffer();
                    s = tda[i][j][k].append("x= ").append(i).append("y= ")
                            .append(j).append("z= ").append(k).toString();
                    System.out.println(s);
                }
    }


Это сообщение отредактировал(а) anonymouse - 23.9.2005, 11:19
--------------------
Много чего интересного...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.