Создание строк
Для создания строки в Java можно использовать класс String. Вот несколько способов создания строки:
// Используя литерал строки
String s1 = "Hello, World!";
// Используя конструктор класса String
String s2 = new String("Hello, World!");
// Используя метод concat
String s3 = "Hello".concat(", World!");
// Используя форматирование строки с помощью метода String.format
String s4 = String.format("Hello, %s!", "World");
// Используя методы StringBuilder или StringBuffer для динамической сборки строки
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(", ");
sb.append("World");
String s5 = sb.toString();
Класс StringBuilder используется для создания изменяемых строк, когда необходимо многократно модифицировать содержимое строки. Класс StringBuffer является его синхронизированной версией и может использоваться в многопоточных приложениях для обеспечения потокобезопасности.
Сложение строк
Cтроки могут быть объединены несколькими способами. Для простого объединения двух строк вы можете использовать оператор + или метод concat(). Вот примеры использования этих методов:
- С помощью оператора +:
String str1 = "Hello";
String str2 = "world";
String result = str1 + " " + str2;
System.out.println(result); // выводит "Hello world"
2. С помощью метода concat():
String str1 = "Hello";
String str2 = "world";
String result = str1.concat(" ").concat(str2);
System.out.println(result); // выводит "Hello world"
Также, вы можете использовать классы StringBuilder или StringBuffer, чтобы более эффективно объединять строки в Java, потому что они работают с изменяемыми объектами, и не создают каждый раз новый объект при конкатенации строк. Вот пример использования StringBuilder:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("world");
String result = sb.toString();
System.out.println(result); // выводит "Hello world"
Сравнение строк
Eсть два способа сравнения строк - оператор == и метод .equals(). Оператор == проверяет, ссылаются ли две переменные на один объект в памяти, тогда как метод .equals() проверяет, имеют ли две переменные одинаковое содержимое (т.е. имеют ли они одинаковые последовательности символов).
Вот пример, который показывает разницу между двумя способами сравнения строк:
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
В этом примере первые две строки имеют одно и то же значение, поэтому str1 == str2 возвращает true. Третья строка создает новый объект в памяти, даже если содержимое строки идентично, и поэтому str1 == str3 возвращает false.
Для проверки равенства содержимого строк всегда рекомендуется использовать метод .equals().
Перевод объекта/примитива в строку
Для преобразования объекта/примитива в строку в Java можно использовать методы toString() или valueOf(). Метод toString() используется для получения текстового представления объекта, а метод valueOf() используется для получения примитивного значения объекта. Например:
int num = 5;
String str1 = Integer.toString(num); // "5"
String str2 = String.valueOf(num); // "5"
Также можно использовать оператор + для объединения строк и переменных, в результате чего все переменные автоматически будут преобразованы в строки:
int num = 5;
String str = "I have " + num + " cookies"; // "I have 5 cookies"
toString(), valueOf() и оператор + поддерживают большинство типов и классов в Java, включая Integer, String, Boolean, Double, и многие другие.
Перевод строки в число
Для того, чтобы преобразовать строку в число, можно использовать различные методы, такие как Integer.parseInt(), Double.parseDouble(), Float.parseFloat(), Long.parseLong() и т.д., в зависимости от того, какой тип данных нужен. Например, чтобы преобразовать строку в целочисленное значение, вы можете использовать следующий код:
String str = "123";
int num = Integer.parseInt(str);
Если строка, которую вы хотите преобразовать, не является допустимой целочисленной строкой, то будет выброшено исключение NumberFormatException. Исключение можно обработать с помощью конструкции try-catch. Пример:
String str = "abc";
try {
int num = Integer.parseInt(str);
System.out.println(num); // Этот блок не выполнится, так как произойдет исключение
} catch (NumberFormatException e) {
System.out.println("Невозможно преобразовать строку в число: " + str);
}
Этот код выведет на консоль сообщение "Невозможно преобразовать строку в число: abc", так как строка "abc" не может быть преобразована в целое число.
Перевод коллекции строк к строковому представлению
Для перевода коллекции строк к строковому представлению можно воспользоваться методом toString() у класса java.util.Collection. Например:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
list.add("world");
String result = list.toString();
System.out.println(result);
}
}
В этом примере мы создали список строк list, добавили в него две строки, вызвали метод toString() и присвоили его результат переменной result. Затем мы вывели значение переменной result на экран. Результатом выполнения этого кода будет строка "[Hello, world]". Обратите внимание, что метод toString() автоматически добавляет кавычки и запятые для каждого элемента коллекции.
Разбиение строки на массив строк
Для разбиения строки на массив строк можно использовать метод split() класса String. Например, чтобы разбить строку input по символу , и поместить результат в массив строк parts, можно написать следующий код:
String input = "раз,два,три";
String[] parts = input.split(",");
Результатом будет массив строк ["раз", "два", "три"]. Метод split() также может использовать регулярные выражения для разделения строки на подстроки. Например, чтобы разделить строку input на пробельные символы, можно написать:
String input = "раз два три";
String[] parts = input.split("\\s+");
Результатом будет массив строк ["раз", "два", "три"]. Обратите внимание на то, что для использования пробелов в качестве разделителей мы использовали регулярное выражение "\\s+", так как метод split() ожидает регулярное выражение в качестве аргумента.
Определение позиции элемента в строке
Для определения позиции символа или подстроки в строке можно использовать метод indexOf() класса String. Он принимает в качестве аргумента символ или подстроку, позицию, с которой необходимо начать поиск (необязательный аргумент) и возвращает индекс первого вхождения символа или подстроки в строку. Если символ или подстрока не найдены, метод возвращает -1.
Вот пример использования метода indexOf() для поиска первого вхождения символа 'a' в строку:
String str = "Hello world";
int position = str.indexOf('a');
System.out.println(position); // Выводит -1, т.к. символ 'a' не найден в строке
А вот пример использования метода indexOf() для поиска первого вхождения подстроки "world" в строку:
String str = "Hello world";
int position = str.indexOf("world");
System.out.println(position); // Выводит 6, т.к. подстрока "world" начинается с 6-й позиции в строке
Метод indexOf() чувствителен к регистру символов, поэтому поиск подстроки "world" в строке "Hello World" вернет -1. Если нужен поиск без учета регистра, можно использовать методы toLowerCase() или toUpperCase() для приведения строки к одному регистру перед поиском, либо использовать метод indexOf() из класса String с регулярным выражением.
Извлечение подстроки из строки
Для извлечения подстроки из строки можно использовать методы substring(), indexOf(), lastIndexOf(), charAt(), либо split().
Метод substring() позволяет извлекать подстроку из данной строки, начиная с указанного индекса и заканчивая другим индексом (не включая его).
Методы indexOf() и lastIndexOf() возвращают индекс первого вхождения (или последнего, соответственно) заданной подстроки в данной строке.
Метод charAt() возвращает символ, находящийся в указанной позиции в данной строке.
Метод split() разбивает данную строку на подстроки по заданному разделителю и возвращает массив подстрок.
Пример использования метода substring():
String str = "Hello, world!";
String substr = str.substring(7, 12);
System.out.println(substr);
// Output: world
Пример использования метода indexOf():
String str = "Hello, world!";
int index = str.indexOf("world");
System.out.println(index);
// Output: 7
Пример использования метода split():
String str = "Hello, world!";
String[] substrings = str.split(",");
System.out.println(substrings[0]);
// Output: Hello
Перевод строки в верхний/нижний регистр
Вы можете использовать методы toUpperCase() и toLowerCase() для перевода строки в верхний/нижний регистр в Java. Вот примеры:
String str = "Пример СТРОКИ";
String strUpper = str.toUpperCase(); // перевод в верхний регистр
String strLower = str.toLowerCase(); // перевод в нижний регистр
System.out.println(strUpper); // выводит "ПРИМЕР СТРОКИ"
System.out.println(strLower); // выводит "пример строки"
Метод toUpperCase() возвращает новую строку, в которой все символы переведены в верхний регистр. Метод toLowerCase() возвращает новую строку, в которой все символы переведены в нижний регистр. Исходная строка остается неизменной.
Github: https://github.com/DEBAGanov