Главная
Вход
Регистрация
Суббота, 08 Фев 2025, 23:41:39 Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Общедоступные статьи [17]

Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Общедоступные статьи

0003_01 - Статические строки

Строки в Java описываются классом String и являютя статическими, т.е. в существующей строке нельзя изменить символы и их колличество.

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

String s1 = "d"; // строка будет сохранена в пуле

Т.к. строки - это объекты класса String, то их можно создать и через конструктор класса

Класс объектКласса = new Класс(параметры);

Т.е. для объекта класса String конструктор будет таким:

String s1 = new String("d"); // строка не будет сохранена в пуле
                             // и будет уничтожена сборщиком мусора

Один из плюсов разделения строк на статические и динамические - повышение безопасности там, где строки используются в качестве аргументов (например, открытие баз данных, интернет соединений, механизм загрузки классов).

 

Операция конкатенации (сцепления) строк (операция +)

Для строк доступна операция +, позволяющая соединить несколько строк в одну. Если один из операндов не строка, то он автоматически преобразуется в строку. Для объектов в этих целях используется метод toString.

String s1 = "новая";
String s2 = "строка";
String s3 = s1 + " " + s2;

 

ОСНОВНЫЕ МЕТОДЫ

 

Определение длины строки (в символах)
String строка;
int длинаСтроки = строка.length();

 

Конкатенация строк
String строка1, строка2;
String длиннаяСтрока = строка1.concat(строка2);
то же самое, что
String длиннаяСтрока = строка1 + строка2;

 

Форматный вывод
%f - место подстановки значения из переменной типа float
%d - место подстановки значения из переменной типа int
%s - место подстановки строки из объекта класса String
float дробноеЧисло;
int целоеЧисло;
String строка;
System.out.printf("дробное = " +
                "
%f, целое = %d" +
                " и строка: " +
                "
%s", дробноеЧисло, целоеЧисло, строка);

 

Форматирование строк
%f - место подстановки значения из переменной типа float
%d - место подстановки значения из переменной типа int
%s - место подстановки строки из объекта класса String
float дробноеЧисло;
int целоеЧисло;
String строка;
String фСтрока = String.format("дробное = " +
                            "%f, целое = %d" +
                            " и строка: " +
                            "%s", дробноеЧисло, целоеЧисло, строка)
;

 

Извлечение символа из строки в указанной позиции
Нумерация позиций в строках начинается с нуля
String строка;
int позиция;
char символ = строка.charAt(позиция);

 

Сравнение строки с другим объектом
String строка;
Object объект;
int результатСравнения = строка.compareTo(объект);
0: полное совпадение строки и объекта
меньше 0: строка лексикографически меньше объекта
больше 0: строка лексикографически больше объекта

 

Лексикографическое сравнение строки с другой строкой
String строка1, строка2;
int результатСравнения = строка1.compareTo(строка2);
0: полное совпадение строки1 и строки2
меньше 0: строка1 лексикографически меньше строки2
больше 0: строка1 лексикографически больше строки2

 

Лексикографическое сравнение строки с другой строкой без учёта регистров символов
String строка1, строка2;
int результатСравнения = строка1.compareToIgnoreCase(строка2);
0: полное совпадение строки1 и строки2
меньше 0: строка1 лексикографически меньше строки2
больше 0: строка1 лексикографически больше строки2

 

Сравнение содержимого
String строка;
StringBuffer цепочкаСимволов;
boolean результатСравнения = строка.contentEquals(цепочкаСимволов);
true: тогда и только тогда, когда в строке присутствует цепочкаСимволов

 

Преобразование массива символов в строку
char[] массивСимволов;
static String статическаяСтрока = copyValueOf(массивСимволов);

 

Преобразование части массива символов из указанного количества символов в строку, начиная с указанного элемента
char[] массивСимволов;
int начЭлемент;
int колЭлементов;
static String статическаяСтрока = copyValueOf(массивСимволов, начЭлемент, колЭлементов);

 

Проверка окончания строки1 на строку2
String строка1, строка2;
boolean результатПроверки = строка1.endsWith(строка2);

 

Проверка идентичности строки и объекта
String строка;
Object объект;
boolean результатПроверки = строка.equals(объект);

 

Проверка идентичности строки1 и строки2 без учёта регистра символов
String строка1, строка2;
boolean результатПроверки = строка1.equalsIgnoreCase(строка2);


     
Преобразование строки в массив байтов, согласно дефолтной кодовой таблице символов системы
String строка;
byte[] массивБайтов = строка.getBytes();

 

Преобразование строки в массив байтов, согласно указанной кодовой таблице символов
String строка;
String кодоваяТаблица; // = "UTF-8";  = "ISO-8859-1"; и т.д.
try {
    byte[] массивБайтов = строка.getBytes(кодоваяТаблица);
} catch(UnsupportedEncodingException e) {
    System.out.println("Неподдерживаемая таблица символов");
}

 

Извлечение массива символов из строки, начиная с начальной позиции и заканчивая конечной позицией и добавление его в существующий массив символов
String строка;
int начСимвол, конСимвол, позицияВставки, колЭлементовМассива;
char[] массивСимволов = new char[колЭлементовМассива];
try {
    строка.getChars(начСимвол, конСимвол, массивСимволов, позицияВставки);
} catch(Exception ex) {
    System.out.println("Ошибка копирования...");
}

 

Вычисление хеш-кода всей строки
Хеш-код строки s - это объект, вычисляемый по формуле

String строка;
int хешКод = строка.hashCode();

 

Поиск позиции первого вхождения символа в строку
String строка;
int кодСимвола;
int перваяПозиция = строка.indexOf(кодСимвола);

 

Поиск позиции первого вхождения символа в строку, начиная с указанной позиции
String строка;
int кодСимвола;
int начПозиция;
int перваяПозиция = строка.indexOf(кодСимвола, начПозиция);

 

Поиск позиции первого вхождения строки2 в строку1
String строка1, строка2;
int перваяПозиция = строка1.indexOf(строка2);

 

Поиск позиции первого вхождения строки2 в строку1, начиная с указанной позиции
String строка1, строка2;
int начПозиция;
int перваяПозиция = строка1.indexOf(строка2, начПозиция);

 

Поиск позиции последнего вхождения символа в строку
String строка;
int кодСимвола;
int последняяПозиция = строка.lastIndexOf(кодСимвола);

 

Поиск позиции последнего вхождения символа в строку, начиная с указанной позиции
String строка;
int кодСимвола;
int начПозиция;
int последняяПозиция = строка.lastIndexOf(кодСимвола, начПозиция);

 

Поиск позиции последнего вхождения строки2 в строку1
String строка1, строка2;
int последняяПозиция = строка1.lastIndexOf(строка2);

 

Поиск позиции последнего вхождения строки2 в строку1, начиная с указанной позиции
String строка1, строка2;
int начПозиция;
int последняяПозиция = строка1.lastIndexOf(строка2, начПозиция);

 

Подсчёт длины строки в символах
String строка;
int длинаСтроки = строка.length();

 

Проверка на идентичность части строки1 с указанной позиции и части строки2 с указанной позиции, длинной в указанное количество символов с возможностью игнорирования регистра символов
String  строка1, строка2;
boolean игнорРег;
int начПозСтр1, начПозСтр2, колСимв;
boolean резПров = строка1.regionMatches(игнорРег, начПозСтр1, строка2, начПозСтр2, колСимв);

 

Проверка на идентичность части строки1 с указанной позиции и части строки2 с указанной позиции, длинной в указанное количество символов
String строка1, строка2;
int начПозСтр1, начПозСтр2, колСимволов;
boolean резПров = строка1.regionMatches(начПозСтр1, строка2, начПозСтр2, колСимв);

 

Замена во всей строке указанного символа на другой указанный
String строка;
char старыйСимвол, новыйСимвол;
String новаяСтрока = replace(старыйСимвол, новыйСимвол);

 

Проверка начала строки1 на строку2
String строка1, строка2;
boolean результатПроверки = строка1.startsWith(строка2);

 

Проверка наличия в строке1 строки2 в указанной позиции
String строка1, строка2;
int начПоз;
boolean результатПроверки = строка1.startsWith(строка2, начПоз);

 

Выделение цепочки символов из строки, начиная и заканчивая указанными позициями
String строка;
int начПоз, конПоз;
CharSequence цепочкаСимв = строка.subSequence(начПоз, конПоз);

 

Выделение подстроки, начиная с указанной позиции    
String строка;
int начПоз;
String подстрока = строка.substring(начПоз);

 

Выделение подстроки, начиная и заканчивая указанными позициями    
String строка;
int начПоз, конПоз;
String подстрока = строка.substring(начПоз, конПоз);

 

Конвертация строки в массив символов
String строка;
char[] массивСимволов = строка.toCharArray();

 

Перевод символов в нижний регистр
String строка;
String новаяСтрока = строка.toLowerCase();

 

Перевод символов в нижний регистр, применяя правила локализации
String строка;
Locale локаль; // = new Locale("ru");
String новаяСтрока = строка.toLowerCase(локаль);

 

Приведение к строке
int целоеЧисло;
double дробноеЧисло;
String строка1 = целоеЧисло.toString();
String строка2 = дробноеЧисло.toString();

 

Перевод символов в верхний регистр
String строка;
String новаяСтрока = строка.toUpperCase();

 

Перевод символов в верхний регистр, применяя правила локализации
String строка;
Locale локаль; // = new Locale("ru");
String новаяСтрока = строка.toUpperCase(локаль);

 

Отсекание всех начальных и конечных пробелов
String строка;
String новаяСтрока = строка.trim();

 

Преобразование в строку
double дробноеЧисло;
boolean флагДаНет;
long длинноеЦелоеЧисло;
char[] массивСимволов;
String строка1 = String.valueOf(дробноеЧисло);
String строка2 = String.valueOf(флагДаНет);
String строка3 = String.valueOf(длинноеЦелоеЧисло);
String строка4 = String.valueOf(массивСимволов);

 

До встречи в следующем уроке.

Категория: Общедоступные статьи | Добавил: FireSnake (03 Дек 2015)
Просмотров: 514 | Теги: строка, метод, методы, java, methods, String, строки | Рейтинг: 5.0/2
Всего комментариев: 0
avatar
Вход на сайт

Поиск

Группа VK