Шаг 81.
Язык программирования Java.
Класс String

На этом шаге мы начнем говорить про класс String

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

Таблица 1. Список конструкторов и их описание
Конструктор Описание
String() Конструктор по умолчанию. Результатом будет пустая строка.
String(byte[] bytes) Конструируется строка на основе переданной конструктору последовательности байтов.
String(byte[] bytes, Charset charset) Конструируется строка на основе переданной конструктору последовательности байтов и указанной кодировке символов.
String(byte[] bytes, String charsetName) Конструируется строка на основе переданной конструктору последовательности байтов. Также конструктору передается имя кодировки символов.
String(byte[] bytes, int offset, int length) Отличается от 2 конструктора тем что, из последовательности байтов беруться только байты с позиции offset в количестве length.
String(byte[] bytes, int offset, int length, Charset charset) Отличается от 3 конструктора тем что, из последовательности байтов беруться только байты с позиции offset в количестве length.
String(byte[] bytes, int offset, int length, String charsetName) Отличается от 4 конструктора тем что, из последовательности байтов беруться только байты с позиции offset в количестве length.
String(char[] value) Конструируется строка на основе переданного массива символов.
String(char[] value, int offset, int count) Отличается от 8 конструктора тем что, из последовательности символов беруться только символы с позиции offset в количестве count.
String(String value) Конструируется строка на основе переданной строки.

Класс String наделен большим количеством методов. Мы рассмотрим наиболее часто используемые из них. С остальными вы можете ознакомится изучив документацию.

Таблица 2. Список функций класса String
Функция Описание
Конкатенация Как и во многих языках программирования строки в языке Java можно конкатенировать. Для этого используется оператор +. При использовании этой операции всегда возвращается новая строка (даже когда произвольная строка конкатенируется с пустой), так как строки в Java являются immutable.
int length() Функция возвращает длину строки.
char charAt(int index) Функция для получения символа строки по его позиции.
char[] toCharArray() Функция для заданной строки возвращает ее в виде массива символов.
boolean equals(Object anObject) Функция для сравнивания строк. В языке Java нельзя сравнивать строки оператором ==. Таким оператором будут сравниваться ссылки а не сами строки. Поэтому для сравнивания строк следует использовать именно функцию equals.
boolean equalsIgnoreCase(String anotherString) Функция для сравнивания строк без учета регистра.
String toUpperCase() Функция для перевода строки в верхний регистр. Возвращает строку в верхнем регистре. Исходная строка не изменяется.
String toLowerCase() Функция для перевода строки в нижний регистр. Возвращает строку в нижнем регистре. Исходная строка не изменяется.
String trim() Функция для удаления пробельных символов из начала и конца строки. Возвращает строку без пробельных символов в начале и в конце исходной строки. Исходная строка не изменяется.
String substring(int beginIndex) Функция для получения подстроки, которая начинается с позиции beginIndex и заканчивается в конце заданной строки.
String substring(int beginIndex, int endIndex) Функция для получения подстроки, которая начинается с позиции beginIndex и заканчивается в позиции endIndex - 1.
int indexOf(String str) Функция для получения позиции первого вхождения str в заданной строке. Если такой подстроки нет, то возвращается -1.
int indexOf(String str, int fromIndex) Функция для получения позиции первого вхождения str в заданной строке начиная с позиции fromIndex. Если такой подстроки нет, то возвращается -1.
int lastIndexOf(String str) Функция для получения позиции последнего вхождения str в заданной строке. Если такой подстроки нет, то возвращается -1.
int lastIndexOf(String str, int fromIndex) Функция для получения позиции последнего вхождения str в заданной строке начиная с позиции fromIndex. Если такой подстроки нет, то возвращается -1.
String replace(char oldChar, char newChar) Функция для изменения символа oldChar на символ newChar во всей строке. Важно отметить, что исходная строка не будет изменена. Функция replace возвращает уже новую строку, даже если замен не было произведено.


Напишем программу для демонстрации работы с функциями из класса String, рассмотренные выше.


/**
 * Программа для демонстрации базовых функций класса String
 * */

public class Main {
    public static void main(String[] args) {
        String s = "Hello world";

        /*Использование функции charAt для доступа к символу*/
        System.out.print("Вывод строки с использованием функции charAt: ");
        for (int i = 0; i < s.length(); i++) {
            System.out.print(s.charAt(i));
        }
        System.out.println();

        String pattern = "Hello WoRlD";

        /*Использование функции equals для проверки на равенство строк*/
        System.out.print("\nС учетом регистра ");
        if (s.equals(pattern)) {
            System.out.println("строки \"" + s + "\" и \"" + pattern + "\" равны");
        } else {
            System.out.println("строки \"" + s + "\" и \"" + pattern + "\" не равны");
        }

        /*Использование функции equalsIgnoreCase для проверки на равенство строк*/
        System.out.print("Без учетом регистра ");
        if (s.equalsIgnoreCase(pattern)) {
            System.out.println("строки \"" + s + "\" и \"" + pattern + "\" равны");
        } else {
            System.out.println("строки \"" + s + "\" и \"" + pattern + "\" не равны");
        }

        /*Использование функции toUpperCase для перевода в верхний регистр*/
        System.out.println("\nСтрока в верхнем регистре: " + s.toUpperCase());

        /*Использование функции toUpperCase для перевода в нижний регистр*/
        System.out.println("Строка в нижнем регистре: " + s.toLowerCase());

        /*Использование функции substring для получения подстроки*/
        System.out.println("\nПодстрока с 1 позиции до 5 строки \"" + s + "\": " + 
                                                                  s.substring(1, 6));

        /*Использование функции indexOf для поиска позиции начала подстроки в строке*/
        pattern = "llo";
        System.out.println("\nПозиция подстроки \"" + pattern + "\" в строке \"" + 
                                                     s + "\": " + s.indexOf(pattern));
    }
}

Проект можно взять здесь


Рис. 1. Вывод программы


На следующем шаге мы продолжим изучение этого вопроса

Предыдущий шаг Содержание Следующий шаг