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

Строки в java.

 Как и почти все в мире java, строки так же являются объектами. Причем объектами ссылочного типа. В строках может храниться последовательность символов произвольной длинны.

 String   str  =    "Я очень длинная строка со спецсимволами \n и прочим \u0000 UTF ";

 Строки можно конвертировать в массивы символов и обратно:

 char[]  arr  =   {"1","2","3"};

String  str  =  new String(arr);

char[]  arr2  =  String.toCharArray("12345");

Важная особенность строк в java – это их неизменяемость.

После создания строки заменять, добавлять или удалять символы мы не можем.

Для работы со строками существует специальный набор функций класса String:

 String  str  =  “dghfhfhj”;                  // создаем строку

int length  =   str.length();                  // получаем длинну строки

char  first_simbol  =  str.charAt(0);   // извлекаем первый символ строки

String  substr   =  str.substring(0, 3);  // извлекаем подстроку с 0 позиции по 3-ю

String  new_str  =  str.replace(“ggg”, “h”);  // заменяем все символы “h” на “ggg”

String  new_str  =  str.toUpperCase();     // переводим все символы в верхний регистр

String  str  =  “str1” + “str2”;             // конкатенация строк

 Важно понимать, что в результате всех манипуляций, исходная строка остается неизменной. Функции всегда возвращают новую строку.

 Еще одна особенность работы со строками java отражает тот факт, что строки являются ссылочными типами. Поэтому как и для всех ссылочных типов простая операция сравнения  типа 

 if (str1 == str2) … 

Всего – лишь определит, ссылаются ли данные строковые переменные на один и тот же объект. То есть, сравнит их ссылки. Если мы хотим сделать вывод об одинаковости самих строк, то для этих целей в классе String предусмотрена специальная функция  equals():

 boolean  resultat_sravnenia  =  str1.equals(str2);

 Для сравнения без учета регистра так же предусмотрен специальный метод:

 boolean  resultat_sravnenia  =  str1.equalsIgnoreCase(str2);

 Такая же функция сравнения предусмотрена и в других классах объектов ссылочного типа. Например, таким образом можно выяснить поэлементное равенство массивов, только в случае массивов она вызывается из родительского класса Arrays, а не из класса самой переменной массива и имеет немного другой синтаксис:

 import java.util.Arrays;

int[] a = new int[30];

int[]  b  =  new int[30];

boolean  result  =  Arrays.equals(a, b);

 

Для поэлементного сравнения многомерных массивов в классе Arrays тоже предусмотрена специальная функция -  deepEquals();

 import java.util.Arrays;

int[] a = new int[30];

int[]  b  =  new int[30];

boolean  result  =  Arrays.deepEquals(a, b);

Лекция 7. Организация ввода-вывода данных Организация ввода-вывода данных.

Организация ввода-вывода данных. Консольный ввод-вывод: средства ввода-вывода. Файловый ввод-вывод. Функции ввода-вывода.

 В java за ввод/вывод отвечает достаточно большое число различных классов, многие из которых дублируют функциональность друг друга. Кроме того, по причинам поддержания обратной совместимости, в java одновременно сосуществуют как классы из очень древних библиотек, написанных уже десяток лет назад, так и классы потокового вывода из обновленного API, привнесенного в java совсем недавно. Теперь разберем всю эту функциональность более подробно.