Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java_Lab_3_Array_String.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
117.76 Кб
Скачать

Работа с массивом

После объявления массива с ним можно работать. Например, присваивать значения элементам массива и вообще обращаться с ними как с обычными переменными. Для обращения к конкретному элементу необходимо указать имя переменной, указывающей на массив, и его индекс в квадратных скобках. Нумерация элементов массива начинается с нуля.

Примеры:

a[0] = 5; // Первому элементу массива a, присваивается значение 5

a[3] = 17; // Четвертому элементу массива a, присваивается значение 17

a[1] = a[0] – a[3]; // Второму элементу массива a присваивается значение -12

Длину массива можно определить, используя запись:

идентификатор_массива.length

Например, a.length будет равняться 5.

Очень удобно перебирать все элементы массива в цикле типа for. При этом обычно используется следующая форма:

for (int i = 0; i < a.length; i++) {// здесь можно что-нибудь сделать с эле­ментом a[i]}

Например, следующий код присваивает всем элементам массива b числа от 1 до 4 (поскольку в массиве b четыре элемента):

for (int i = 0; i < b.length; i++) {b[i] = i;}

За границы массива выходить нельзя. Т.е., если в массиве a пять элементов, то обращение к шестому или восьмому элементу приведет к ошибке (точнее, возбуждению исключения).

a[5] = 8; // Нельзя, в массиве a только 5 элементов: a[0], a[1], a[2], a[3], a[4]

Задание 3

Напишите метод, увеличивающий элементы массива на 10%.

Подсказка: подумайте, какие у этого метода входные и выходные данные. Ре­шите сами, должен ли метод изменять исходный массив, или в результате ра­боты будет создаваться новый. Напишите к методу комментарии.

Работа со строками Создание строк

Строки тоже являются переменными ссылочного типа, а точнее — ссылками на объекты одного из нескольких строковых классов Java. Мы рассмотрим класс String.

Самый распространенный способ создать строку — это организовать ссылку типа String на строку-константу:

String s = "Это строка";

Можно просто сначала объявить переменную (которая получит значе­ние null), а потом заставить ее ссылаться на строку-константу, другую строку или воспользоваться командой new, чтобы явным образом выделить память для строки:

String s1, s2, s3; // Объявление трех переменных, которые пока не связаны ни с какой строкой

s1 = "Да здравствует день танкиста"; // Переменная s1 теперь ссылается на об­ласть памяти, в которой хранится строка "Да здравствует день танкиста"

s2 = s1; // Теперь обе переменные s1 и s2 ссылаются на одно и то же место па­мяти

s3 = new String(); // s3 ссылается на место в памяти, где хранится пустая строка

Класс String содержит следующие методы для работы со строками:

String concat(String s) или “+” – слияние строк;

boolean equals(Object ob) и equalsIgnoreCase(String s) – сравнение строк с учетом и без учета регистра соответственно;

int compareTo(String s) и compareToIgnoreCase(String s) – лексикографическое сравнение строк с учетом и без учета регистра. Метод осуществляет вычитание кодов символов вызывающей и передаваемой в метод строк и возвращает целое значение. Метод возвращает значение нуль в случае, когда equals() возвращает значение true;

boolean contentEquals(StringBuffer ob) – сравнение строки и содержимого объекта типа StringBuffer;

String substring(int n, int m) – извлечение из строки подстроки длины (m-n), начиная с позиции n. Нумерация символов в строке начинается с нуля;

String substring(int n) – извлечение из строки подстроки, начиная с позиции n;

int length() – определение длины строки;

int indexOf(char ch) – определение позиции символа в строке;

static String valueOf(значение) – преобразование переменной базового типа к строке;

String toUpperCase()/toLowerCase() – преобразование всех символов вызывающей строки в верхний/нижний регистр;

String replace(char с1, char с2) – замена в строке всех вхождений первого символа вторым символом;

String intern() – заносит строку в “пул” литералов и возвращает ее объектную ссылку;

String trim() – удаление всех пробелов в начале и конце строки;

char charAt(int position) – возвращение символа из указанной позиции (нумерация с нуля);

boolean isEmpty() – возвращает true, если длина строки равна 0;

byte[] getBytes(), getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) – извлечение символов строки в массив байт или символов;

static String format(String format, Object... args), format(Locale l, String format, Object... args) – генерирует форматированную строку, полученную с использованием формата, интернационализации и др.;

String[] split(String regex), split(String regex, int limit) – поиск вхождения в строку заданного регулярного выражения (разделителя) и деление исходной строки в соответствии с этим на массив строк. Метод split(String regExp) разбивает текст на слова, используя в качестве разделителей символы, входящие в параметр regExp, и возвращает ссылку на массив, составленный из этих слов. Параметр regExp представляет со­бой список разделителей слов (прбел, ?!,.: и т.п.). Сами разделители ни в одно слово не входят.

Во всех случаях вызова методов, изменяющих строку, создается новый объект типа String.

В следующем примере спользуются методы работы со строками.

public class stringsamoilova {

static int i;

public static void main(String[] args) {

primer1();

}

public static void primer1(){

String str1 = "В траве сидел кузнечик";

i = str1.length();

String str2 = " совсем как огуречик.";

str2 = str1.concat(str2);

str2 = str2.toUpperCase();

System.out.println(str2);

str2 = str2.replace("ЧИК", "Ц");

System.out.println(str2);

str1 = str2.substring(8, 22).toLowerCase();

System.out.println(str1);

String[] arr = str2.split(" ");

for (String ss : arr)

System.out.println(ss);

}

}

Отладьте данный пример, заменив строки произвольным текстом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]