23 августа 2011 23.08.11 14 2170

Туториал по java №5

+7

<< >>

Массивы

Массив — совокупность переменных с общим именем, но разными индексами. Объявление массива:
<Тип>[] <Имя> = new <тип> [<кол-во элементов>];
Например int[] a = new int [5];

Автоматическое объявление по набору значений:
<Тип>[] <Имя> = {<Знач 0>, <Знач 1>, <...>}

Внимание:
Индексы в java начинаются с 0, те у нас есть доступ к a[0-4]

При работе с массивом очень удобно использовать цикл for. Специально для «прохода» по массиву создана специальная форма цикла for:
for (<тип> <имя переменной>: <имя массива>) {
}

На каждой итерации цикла в переменную копируется значение из массива.

Внимание:
При изменении значения переменной не меняется значение ячейки массива. Данный цикл лучше реализован в C# (foreach)

В общем приведу коротенький пример эхо-программки:

import java.util.Scanner;

public class Tutorial {
public static void main(String[] args) {
int[] a = new int[5];
Scanner scan = new Scanner(System.in);
for (int i = ; i < 5; i++) {
a[i] = scan.nextInt();
}
System.out.println();
for (int i: a) {
System.out.println(i);
}

}

}

Как вы уже видели, в метод main приходит как аргумент массив типа String args. Это — аргументы с которыми запускается наша программа (<адрес программы> <аргумент>). В подобных массивах (которые мы получаем, не зная количества элементов) полезно использовать метод, встроенный в любой массив — .length (a.length), он (КО) возвращает количество элементов массива (если тыкнуться в несуществующую часть массива то будет аварийный вылет с ошибкой).

Методы, связанные со строками

Посмотрите: все аргументы, посылаемые в нашу программу считаются строками, но ведь это быть и не так! Например если мы делаем консольную утилиту сложения, то в нее как аргументы посылаются 2 числа (типа double), однако, если написать конструкцию типа System.out.print(args[0]+args[1]); то при аргументах 1 2 мы получим 12.

Но выход из этой ситуации есть — метод parse… в классах, представляющих собой типы переменных: Double.parseDouble(String), Integer.parseInt(String), Boolean.parseBoolean(String) и тп.

Внимание:
Эти классы пишутся с большой буквы. Также класс, представляющий int называется Integer.

Вот код этой программы:

public class Tutorial {
public static void main(String[] args) {
if (args.length == 2) {
System.out.print(Double.parseDouble(args[]) + Double.parseDouble(args[1]));
} else {
System.out.print(«Error»);
}

}

}

Особенность строк в java — это не массив символов (char), а сложная ссылочная структура, поэтому нельзя сравнивать строки как все остальные переменные (str1 == str2). Строки должны сравниваться методом str1.equals(str2) или str1.equalsIgnoreCase(str2) (второй сравнивает строки без различия в прописных/строчных буквах)

Остальные методы вполне могут быть найдены просмотром списка методов строки, тк они вполне понятно названы. Хочу остановиться только над одним метадом (мне он очень помог в моих плагинах для bukkit) — .split(<разделитель>).
Пример работы: String[] str = «1 2 3».split(" ");
str: {«1», «2», «3»}


Лучшие комментарии

Неделя в 100 км от города без намека на комп. Тутор со смарта я бы не осилил))
Новички пускай по учебникам учаться >_< Изучать с нуля весь ЯП по туториалам-задача весьма и весьма идиотская странная.
Яркий пример-тутор по c#(автора не помню, скрылся в блогах)-там он(автоор) ставит целью поднять левел парней с какого то сайта, что бы они писали игру на его движке о_О. При этом пишет про правила обьявления переменных и Console.WriteLine, что намекает-повышать левел парни будут ооочень долго. (именно поэтому я прошу больше pro-версий-сложные аспекты языка таким образом иногда даже легче изучать)
ок, туториал 6 будет про написание одной большой программы с разъяснениями комментариями и тп.
Ясно… Ты про пиши, только для новичков туторы тож не забрасывай…
Спасибо!
Да просто ты быстро сильно движешься, возьми пример с учебников… Новичкам трудно будет так быстро…
” За неделю на
природе я узнал, что белки у глаз
БЕЛЫЕ!

Исправь предложение…
Читай также