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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатель на масив строк 
:(
    Опции темы
Syltan
Дата 22.5.2010, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подскажите, как можно создать на Яве масив из строк?
Пробую так не выхдит.
Код

char privet[];
privet = new char[]={'Петя','Вася','Коля','Дима'};

PM MAIL   Вверх
godvinn
Дата 22.5.2010, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 4.4.2008
Где: possibility of mo ving to Kyiv

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



Код

String strArr[] = {"test_1", "test_2", "test_2"}; 

может так 


--------------------
Everything happens in life.
user posted image
PM MAIL   Вверх
Syltan
Дата 23.5.2010, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да, спс.
Так как тема относится к масивам ещё возник небольшой вопрос.

Не рабоатет такой код.
Код

package java2;
public class Main {
    public static void main(String[] args) {
    int  d[][] = new int[4][];
    d[0]=new int[1];
    d[1]=new int[2];
    d[2]=new int[3];
    d[3]=new int[4];
    for(int i=0; i<d.length; i++){
        for(int j=0; j<d.length; j++)
        System.out.print(d[i][j]+" ");
    }
    }
  }


Программа должна выводить масив, с рахзным количеством столбцов.
В первой строке должен быть 1 столбец, 2-ой - 2 столбца, 
3-ей - 3 столбца, 4-ой - 4. программа не хочет работать.
PM MAIL   Вверх
Nofate
Дата 23.5.2010, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



замените
Код

for(int j=0; j<d.length; j++)

на
Код

for(int j=0; j<d[i].length; j++)



--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
duk
Дата 23.5.2010, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


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

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



Ничего не понятно про то, как именно должна работать программа (про столбцы ничего не понял). По примеру догадался, что наверное так:
Код

package java2;

public class Main {
    public static void main(String[] args) {
        int d[][] = new int[4][];
        d[0] = new int[] { 1 };
        d[1] = new int[] { 1, 2 };
        d[2] = new int[] { 1, 2, 3 };
        d[3] = new int[] { 1, 2, 3, 4 };
        for (int i = 0; i < d.length; i++) {
            for (int j = 0; j < d[i].length; j++) {
                System.out.print(d[i][j] + " ");
            }
            System.out.println();
        }
    }
}

PM MAIL   Вверх
Syltan
Дата 23.5.2010, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Объясните вот эту строку.
Код

d[0] = new int[] { 1 };


PM MAIL   Вверх
pathfinder
Дата 23.5.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Создание массива и одновременное его заполнение(ака синтаксический сахар).

Код duk-а можно переписать еще чуть-чуть короче.

Код

package java2;
public class Main {
    public static void main(String[] args) {
        int d[][] = { {1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4} };
        for (int i = 0; i < d.length; i++) {
            for (int j = 0; j < d[i].length; j++) {
                System.out.print(d[i][j] + " ");
            }
            System.out.println();
        }
    }
}

PM MAIL   Вверх
Syltan
Дата 23.5.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот ещё ещё очень простой код, не работает. пробую деолать.
Код

package java2;
public class Main {
    public static void main(String[] args) {
    String b="Маша";
    if("Маша".equals(b)) System.out.println(b);
    else System.out.println("Плохо Петя");
    else if("дядя".equals(b))
        System.out.println("Очень плохо Петя");

        }
    }
  
 

PM MAIL   Вверх
duk
Дата 23.5.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


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

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



Syltan, лучшим способом для тебя, есть чтение литературы. Купи, или если нету денег выкачай замечательный двухтомник Хорстмана и Корнела: Core Java. Там все базовые вещи классно описаны + есть описание всяких штук посложнее. Судя по всему тебе нужно читать с самого начала.

Разбирай примеры, и если будут возникать вопросы пиши сюда или в личку. С удовольствием тебе отвечу.
PM MAIL   Вверх
pathfinder
Дата 23.5.2010, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



За такой стиль кодирования надо бить морду в обязательном порядке.

Если расставит {} в приведенном коде сразу же ошибку Syltan найдет.
PM MAIL   Вверх
Syltan
Дата 23.5.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Чего-то не срабатывает,   если отдельно написать 2 ифа, тогда нормально, я просто хотел именно чтоб попробовать проексепрементировать  с повторениями else if, чего-то мой код не работает. Если 1 оператор идёт после ифа, поэтому я и не ставил блоковые скобки.

Это сообщение отредактировал(а) Syltan - 23.5.2010, 16:10
PM MAIL   Вверх
duk
Дата 23.5.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


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

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



Код

package java2;

public class Main {
    public static void main(String[] args) {
        String b = "Маша";
        if ("Маша".equals(b)) {
            System.out.println(b);
        } else if ("дядя".equals(b)) {
            System.out.println("Очень плохо Петя");
        } else {
            System.out.println("Плохо Петя");
        }
    }
}


Добавлено через 1 минуту и 9 секунд
pathfinder, не нужно никого бить в морду хД. 

Если у человека есть желание, не надо его отбивать. Пускай учится.
PM MAIL   Вверх
Syltan
Дата 23.5.2010, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо Дук! Значит всё-таки, нужно во вложенные скобки брать ифы чтоб писать после одного из ифов выражение }else if и т.д.?


Да, вот ещё попробовал проексперментировать, сработало.
Код

package java2;

public class Main {
    public static void main(String[] args) {
        String b = "Джин";
        if ("Маша".equals(b)) {
            System.out.println(b);
        } else if ("дядя".equals(b)) {
            System.out.println("Очень плохо Петя");
        } else if("Петро".equals(b)) {
         System.out.println("Плохо Петя"); }
        else if("Джин".equals(b)){
            System.out.println("Получи приз от Джина!"); }
            }
    }



Хотя конечно такое не использует никто, все оператора выбора switch юзают для такого.

Добавлено через 10 минут и 43 секунды
Вопрос возник. Почему во втором форе такой предел стоит?
Код


        for (int i = 0; i < d.length; i++) {      //с о-левого элемнета строки по длину столбцов
            for (int j = 0; j < d[i].length; j++) { //А здесь как рсшифровать ?



Это сообщение отредактировал(а) Syltan - 23.5.2010, 16:47
PM MAIL   Вверх
duk
Дата 23.5.2010, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


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

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



По-порядку:
Можно написать и так:
Код

package java2;

public class Main {
    public static void main(String[] args) {
        String b = "Маша";
        if ("Маша".equals(b))
            System.out.println(b);
        else if ("дядя".equals(b))
            System.out.println("Очень плохо Петя");
        else
            System.out.println("Плохо Петя");
    }
}


Сравни со своим кодом. Последний else у тебя не ни с чем не связан.

Цитата(Syltan @  23.5.2010,  16:39 Найти цитируемый пост)
Хотя конечно такое не использует никто, все оператора выбора switch юзают для такого.


switch со строками не работает.

Цитата(Syltan @  23.5.2010,  16:39 Найти цитируемый пост)
Вопрос возник. Почему во втором форе такой предел стоит?
Выделить всёкод Java
1:
2:
    
        for (int i = 0; i < d.length; i++) {      //с о-левого элемнета строки по длину столбцов
            for (int j = 0; j < d[i].length; j++) { //А здесь как рсшифровать ?


Потому что каждый элемент массива d -- тоже массив (d[0], ..., d[3] -- массивы и для их прохода нам необходимо знать размер).

Добавлено @ 17:02
Мы могли бы написать и так:
Код

package java2;
public class Main {
    public static void main(String[] args) {
        int d[][] = new int[4][];
        d[0] = new int[] { 1 };
        d[1] = new int[] { 1, 2 };
        d[2] = new int[] { 1, 2, 3 };
        d[3] = new int[] { 1, 2, 3, 4 };
        for (int i = 0; i < d.length; i++) {
            int[] arr = d[i];
            for (int j = 0; j < arr.length; j++) {
                System.out.print(arr[j] + " ");
            }
            System.out.println();
        }
    }
}


Это сообщение отредактировал(а) duk - 23.5.2010, 17:04
PM MAIL   Вверх
Syltan
Дата 23.5.2010, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Прошу прощения, а как это так одномерному масиву присвоить двумерный?
Код

int[] arr = d[i];

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

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

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


 




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


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

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