Класс String

В языке программирования Java строки — это объект, который представляет из себя последовательность символов. Здесь мы рассмотрим методы создания и управления строками.

Тип Метод Описание
char charAt(int index) Возвращает char со значением равным символу с индексом index.
int compareTo(String anotherString) Сравнивает указанную строку. Используется при сортировке.
int compareToIgnoreCase(String str) Сравнивает указанную строку. Здесь не учитывается регистр.
String concat(String str) Присоединяет строку str к концу родительской строки.
boolean contains(CharSequence s) Возвращает true, если строка содержит указанную последовательность символов.
boolean contentEquals(CharSequence cs) Сравнивает данную строку с указанным CharSequence .
boolean contentEquals(StringBuffer sb) Сравнивает данную строку с указанным StringBuffer .
boolean endsWith(String suffix) Проверяет, заканчивается ли строка с указанной строкой.
boolean equals(Object anObject) Сравнивает строки по значению с учетом регистра.
boolean equalsIgnoreCase(String anotherString) Сравнивает строки по значению без учета регистра.
static String format(String format, Object... args) Возвращает отформатированную строку, используя специальный формат строки и аргументы.
byte[] getBytes() Возвращает представление строки в виде массива байт.
int hashCode() Возвращает хеш-код строки.
int indexOf(int ch) Возвращает индекс первого вхождения символа в строку.
int indexOf(int ch, int fromIndex) Возвращает индекс первого вхождения символа в строку, начиная с указанной позиции.
int indexOf(String str) Возвращает индекс первого символа подстроки в строке.
int indexOf(String str, int fromIndex) Возвращает индекс первого символа подстроки в строке, начиная с указанной позиции.
boolean isEmpty() Проверяет, пустая строка или нет.
int lastIndexOf(int ch) Поиск последнего символа в строку.
int lastIndexOf(int ch, int fromIndex) Поиск последнего вхождения символа в строку. Он Осуществляется назад, от указанной позиции до начала строки.
int lastIndexOf(String str) Поиск последнего вхождения строки.
int lastIndexOf(String str, int fromIndex) Поиск последнего вхождения строки. Он Осуществляется назад, от указанной позиции до начала строки.
int length() Возвращает количество символов в строке.
boolean matches(String regex) Проверяет, удовлетворяет ли строка указанному регулярному выражению.
String replace(char oldChar, char newChar) Заменяет в строке один символ на другой
String replace(CharSequence target, CharSequence replacement) Заменяет одну подстроку другой.
String replaceAll(String regex, String replacement) Заменяет каждую подстроку данной строки, которая соответствует данному регулярному выражению на заданную строку.
String replaceFirst(String regex, String replacement) Заменяет первую подстроку данной строки, которая соответствует данному регулярному выражению на заданную строку.
boolean startsWith(String prefix) Проверяет, начинается ли строка с указанной строки.
boolean startsWith(String prefix, int toffset) Проверяет, начинается ли строка в указанной позиции с указанной строки.
String substring(int beginIndex) Возвращает подстроку начиная с beginIndex (включительно) до конца строки.
String substring(int beginIndex, int endIndex) Возвращает подстроку начиная с beginIndex (включительно) до endIndex (не включительно).
char[] toCharArray() Преобразует строку в массив символов.
String toLowerCase() Конвертирует все символы строки в нижний регистр.
String toString() Возвращает сам объект, который уже является строкой.
String toUpperCase() Конвертирует все символы строки в верхний регистр.
String trim() Удаляет пробелы в начале и конце строки.
static String valueOf(boolean b) Возвращает значение булевой переменной в виде стоки.
static String valueOf(char c) Возвращает значение символьной переменной в виде стоки.
static String valueOf(char[] data) Возвращает значение массива символов в виде стоки.
static String valueOf(char[] data, int offset, int count) Возвращает значение массива символов в виде стоки.
static String valueOf(double d) Возвращает значение double-переменной в виде стоки.
static String valueOf(float f) Возвращает значение float-переменной в виде стоки.
static String valueOf(int i) Возвращает значение int-переменной в виде стоки.
static String valueOf(long l) Возвращает значение long-переменной в виде стоки.
static String valueOf(Object obj) Возвращает строковое представление объекта.

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




Самый простой способ создания строки:

String helloWorld= "Hello world!";

Создание строки из символа:

char symbol = 'S'
String helloWorld= new String(symbol);

Создание строки из массива символов:

char[] chars= { 'H', 'e', 'l', 'l', 'o'};

String hello= new String(chars);

Также задать диапазон символьного массива. Для этого нужно указать начало диапазона и количество символов:

char[] chars = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};
String stroka = new String(chars, 3, 6);

Получение длины строки

length() — возвращает количество символов в строке.

Пример:

String hello = "Hello";
 
int stringLength = helloWorld.length(); //переменная stringLength будет равна 5.

Проверка строки на пустоту

isEmpty() — проверяет, пустая строка или нет.

Пример:

String hello = "";
Boolean isEmpty = helloWorld.isEmpty(); //переменная isEmpty  будет равна true.

Конкатенация (объединение) строк

concat(String str) — присоединяет строку str к концу родительской строки.

Пример:

String hello = "Hello ";

String world = "World!"

String helloWorld = hello.concat(world); //переменная helloWorld будет равна "Hello World!"

Операторы + и += для String

Оператор «+»  — аналог метода concat для String.

Пример:

String hello = "Hello ";

String world = "World!"

String helloWorld = hello + world; //переменная helloWorld будет равна "Hello World!"

Оператор «+=» — присоединяет к строке, стоящей до оператора строку, стоящую после этого оператора.

Пример:

String hello = "Hello ";

String world = "World!"  hello += world; //переменная hello будет равна "Hello World!"

Сравнивание строк

equals(String anotherString) — сравнивает строки по значению с учетом регистра.

Пример:

String stroka1 = "hello";

String stroka2 = "Hello";

Boolean equals stoka1.equals(stroka2); //переменная equals будет равняться false

equalsIgnoreCase(String anotherString) — сравнивает строки по значению без учета регистра

String stroka1 = "hEllo";

String stroka2 = "HeLlO";

Boolean equals = stoka1.equalsIgnoreCase(stroka2); //переменная equals будет равняться true

Разница между == и equals()

Оператор == сравнивает ссылаются ли две ссылки на один и тот же объект, в то время как equals() сравнивает содержат ли два объекта одни и те же данные.




Пример:

String stroka1 = "Hello";

String stroka2 = "Hello";

Boolean b1 = stroka1 == stroka2; //переменная b1 будет равняться false;

Boolean b2 = stroka1.equals(stroka2); //переменная b2 будет равняться true;

Форматирование строки

format(String format, Object… args) — возвращает отформатированную строку, используя специальный формат строки и аргументы.

Пример:

String s = String.format("%1$s %2$s %3$s", new String[] {"a", "b", "c"});
System.out.println(s); //выведет a b c

Поиск подстроки в строке

indexOf(String str) — возвращает индекс первого символа подстроки в строке.

Пример:

String s = "HelloWorld!";

int index = s.indexOf("World"); //переменная индекс будет равна 5

indexOf(String str, int fromIndex) — возвращает индекс первого символа подстроки в строке, начиная с указанной позиции.

Пример:

String s = "HelloWorld!";

int index = s.indexOf("World", 4); //переменная индекс будет равна 5

lastIndexOf(String str) — поиск последнего вхождения строки.

Пример:

String s = "HelloWorld! Hello";

int index = s.lastIndexOf("Hello"); //переменная индекс будет равна 13

lastIndexOf(String str, int fromIndex) — поиск последнего вхождения строки. Он осуществляется назад, от указанной позиции до начала строки.




Пример:

String s = "HelloWorld! Hello";

int index = s.lastIndexOf("World", 5); //переменная индекс будет равна 12

startsWith(String prefix) — проверяет, начинается ли строка с указанной строки.

Пример:

String stroka = "Hello World!";

Boolean startsWith stroka.endWith("Hello"); //переменная endWith будет равна true

startsWith(String prefix, int toffset) — проверяет, начинается ли строка в указанной позиции с указанной строки.

Пример:

String stroka = "Hello World!";

Boolean startsWith stroka.endWith("Hello", 2); //переменная endWith будет равна false

endsWith(String str) — проверяет заканчивается ли строка на указанную строку.

Пример:

String stroka = "Hello World!";

Boolean endsWith stroka.endWith("World!"); //переменная endWith будет равна true

contains(CharSequence s) — возвращает true, если строка содержит указанную последовательность символов.

Пример:

String hello = "Hello World";
System.out.println("Содержит слово World: " + hello.contains("World")); //выведет "Содержит слово World: true"
}

Сортировка строк

compareTo(String anotherString) — сравнивает указанную строку. Используется при сортировке. Здесь учитывается регистр и слова с верхним регистром стоят выше слова с нижним регистром.Если строки совпадают, то возвращается 0, если вызывающая строка меньше строки string то возвращается число меньше нуля, вызывающая строка больше строки string, то возвращается число больше нуля. 

Пример:

String[] sort = { "Sergei", "He's", "Petrov"};

for (int j = 0; j < sort.length; j++) {
	for (int i = j + 1; i < sort.length; i++) {
		if (sort[i].compareTo(sort[j]) < 0) {
			String temp = sort[j];
			sort[j] = sort[i];
			sort[i] = temp;
		}
	}
	System.out.println(sort[j]); //выведет "He's Sergei Petrov"
}

compareToIgnoreCase(String anotherString) — сравнивает указанную строку. Здесь не учитывается регистр

Пример:

String[] sort = { "Sergei", "My", "Petrov", "name's"};

for (int j = 0; j < sort.length; j++) {
	for (int i = j + 1; i < sort.length; i++) {
		if (sort[i].compareTo(sort[j]) < 0) {
			String temp = sort[j];
			sort[j] = sort[i];
			sort[i] = temp;
		}
	}
	System.out.println(sort[j]);
}

Получение хеш-кода строки

hashCode() — возвращает хеш-код строки.

Пример:

String stroka = "Hello";

int hash = stroka.hashCode();

Хеш-код у двух одинаковых строк будет одним и тем же.

Изменение регистра строки

toLowerCase() — конвертирует все символы строки в нижний регистр.




Пример:

String hello = "HellO wOrld";

String helloInLowerCase = hello.toLowerCase(); //переменная helloInLowerCase будет равна "hello world!"

toUpperCase() — конвертирует все символы строки в верхний регистр.

Пример:

String hello = "HellO wOrld";

String helloInUpperCase = hello.toUpperCase(); //переменная helloInLowerCase будет равна "HELLO WORLD!"

Удаление лишних пробелов

trim() — удаляет пробелы в начале и конце строки.

Пример:

String str = "  Hello World! ";

String s = str.trim(); //переменная s будет равна "Hello World!"
Получение символа из строки

charAt(int index) — возвращает char со значением равным символу с индексом index.

Пример:

String hello = "HelloWorld!";
char symbol = hello.charAt(4); //переменная symbol будет равна "o", т. к. нумерация символов начинается с 0.

Получение подстроки из строки

substring(int beginIndex, int endIndex) — возвращает подстроку начиная с beginIndex (включительно) до endIndex (не включительно).

Пример:

String hello = "HelloWorld!";

String stroka = helloWorld.substring(0, 5); //переменная stroka будет равна "Hello"

substring(int beginIndex) — возвращает подстроку начиная с beginIndex (включительно) до конца строки.

Пример:

String hello = "HelloWorld!";

String stroka = helloWorld.substring(6); //переменная stroka будет равна "World!".

Замена символов и строк

replace(char oldChar, char newChar) — заменяет в строке один символ на другой.

Пример:

char W = 'W';
char V = 'V';
String helloWorld = "Hello World!";
String helloVorld = helloWorld.replace(W, V); //переменная helloVorld будет равна "Hello Vorld!"

replace(CharSequence target, CharSequence replacement) — заменяет одну подстроку другой.

String world = "World";
String java = "Java";
String helloWorld = "Hello World!";
String helloJava = helloWorld.replace(world , java ); //переменная helloWorld будет равна "Hello Java!"

Получение строковых представлений классов

valueOf(boolean b) — возвращает значение булевой переменной в виде стоки.

Пример:

boolean isEmpty = true;
String stroka= String.valueOf(isEmpty);

valueOf(char c) — возвращает  значение символьной переменной в виде стоки.

Пример:

char symbol = 'S';
String stroka= String.valueOf(isEmpty);

valueOf(char[] data) — возвращает значение массива символов в виде стоки.

Пример:

char[] chars = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};
String stroka = String.valueOf(chars);

valueOf(char[] data, int offset, int count) —  возвращает значение массива символов в виде стоки.




Пример:

char[] chars = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};
String stroka = String.valueOf(chars, 5, 5);

valueOf(double d) —  возвращает значение double-переменной в виде стоки.

Пример:

double price = 10.5;
String stroka= String.valueOf(price);

valueOf(float f) — возвращает значение float-переменной в виде стоки.

Пример:

float price = 10.5;
String stroka= String.valueOf(price);

valueOf(int i) — возвращает значение int-переменной в виде стоки.

Пример:

Boolean price = 2000;
String stroka= String.valueOf(price);

valueOf(long l) — возвращает значение long-переменной в виде стоки.

Пример:

long price = 1000;
String stroka= String.valueOf(price);

valueOf(Object obj) — возвращает строковое представление объекта.

Пример:

Boolean isEmpty = true;
String stroka= String.valueOf(isEmpty);

 Проверка строки регулярным выражением

matches(String regex) — проверяет, удовлетворяет ли строка указанному регулярному выражению.

Пример:

String phone_number = "+79260000000";
Boolean isPhoneNumber = phone_number.matches("^((8|+7)[- ]?)?((?d{3})?[- ]?)?[d- ]{7,10}$"); //переменная isPhoneNumber равна true

Перевод строки в байты

getBytes() — возвращает представление строки в виде массива байт.

Пример:

String helloWorld = "Hello World!";
byte[] helloByte = helloWorld.getBytes();

Комментарии:

6 comments

  1. Алил Reply

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

  2. Денис Reply

    Спасибо, очень доступно и информативно.

  3. Руслан Reply

    Здорово. То что нужно, очень емкая подача. Спасибо.

  4. Pingback: Я хочу программировать под Android. Вопрос #2 | Java-Help

  5. Дмитрий Reply

    Спасибо. Для новичком очень полезно!!! Админ так держать!! :))

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

1 + 5 =