English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Строки (String) Java

В этом руководстве мы будем изучать Java String с помощью примеров, как его создавать и какие методы он предоставляет.

 В Java строки представляют собой последовательность символов. Например, "hello" - это строка, содержащая символьную последовательность "h", "e", "l", "l" и "o".

В отличие от других языков программирования, строки в Java не являются базовыми типами (например, int, char и т.д.). Напротив, все строки являются объектами класса, предварительно определенного как String. Например,

//создание строки
String type = "java programming";

Здесь мы создали строку с именем type. Здесь мы используем "java programming" для инициализации строки. В Java мы используемДвойные кавычкиПредставляет строку.

Эта строка является экземпляром класса String.

Внимание:Все строки являются экземплярами класса String.

Методы строк Java

Java String предоставляет различные методы, которые позволяют нам выполнять различные операции со строками. Вот некоторые из常用的 методов строк.

МетодОписание
concat()Соединяет две строки
equals()Сравнивает значения двух строк
charAt()Возвращает символ, находящийся в заданном положении
getBytes()Конвертирует строку в массив байт
indexOf()Возвращает положение заданного символа в строке
length()Возвращает размер заданной строки
replace()Заменяет指定的 старый символ новым символом
substring()Возвращает подстроку строки
split()Разделяет строку на массив строк
toLowerCase()Конвертирует строку в нижний регистр
toUpperCase()Конвертирует строку в верхний регистр
valueOf()Возвращает строковое представление заданных данных

Давайте рассмотрим несколько примеров.

Пример 1: Java определяет длину строки

class Main {
  public static void main(String[] args) {
    //Создание строки
    String greet = "Hello! World";
    System.out.println("Строка: " + greet);
    //проверяет длину строки
    System.out.println("Длина строки: " + greet.length());
  }
}

Результат вывода

Строка: Hello! World
Длина строки: 12

В примере, приведенном выше, мы создали строку с именем greet. Здесь мы используем метод length() для получения размера строки.

Пример 2: Java использует concat() для соединения двух строк

class Main {
  public static void main(String[] args) {
    //Создание строки
    String greet = "Hello! ";
    System.out.println("Первая строка: " + greet);
    String name = "World";
    System.out.println("Вторая строка: " + name);
    // Соединение двух строк
    String joinedString = greet.concat(name);
    System.out.println("Соединенная строка: " + joinedString);
  }
}

Результат вывода

Первая строка: Hello!
Вторая строка: World
Соединенная строка: Hello! World

В примере, приведенном выше, мы создали 2 строки с именами greet и name.

Здесь мы используем метод concat() для соединения строк. Таким образом, мы получаем новую строку с именем joinedString.

В Java мы также можем использовать оператор + для соединения двух строк.

Пример 3: Использование оператора + для соединения строк в Java

class Main {
  public static void main(String[] args) {
    //Создание строки
    String greet = "Hello! ";
    System.out.println("Первая строка: " + greet);
    String name = "World";
    System.out.println("Вторая строка: " + name);
    // Соединение двух строк
    String joinedString = greet + name;
    System.out.println("Соединенная строка: " + joinedString);
  }
}

Результат вывода

Первая строка: Hello!
Вторая строка: World
Соединенная строка: Hello! World

Здесь мы используем оператор + для соединения двух строк.

Пример 4: Сравнение двух строк в Java

class Main {
  public static void main(String[] args) {
    // Создание строки s
    String first = "java programming";
    String second = "java programming";
    String third = "python programming";
    // Сравнение первой строки и второй строки
    boolean result1 = first.equals(second);
    System.out.println("Первая и вторая строки равны: " + result1);
    // Сравнение первой и третьей строк
    boolean result2 = first.equals(third);
    System.out.println("Первая и третья строки равны: " + result2);
  }
}

Результат вывода

Первая и вторая строки равны: true
Первая и третья строки равны: false

В上面的 примере мы использовали метод equals() для сравнения значений двух строк.

Если две строки одинаковы,该方法 возвращает true, в противном случае возвращает false.

ВниманиеМы также можем использовать оператор == и метод compareTo() для сравнения двух строк.

Пример 5: Получение символов из строки в Java

class Main {
  public static void main(String[] args) {
    // Создание строки с помощью строкового litterala
    String greet = "Hello! World";
    System.out.println("Строка: " + greet);
    // Возвратить символ на позиции 3
    System.out.println("Символ на позиции 3: " + greet.charAt(3));
    // Возвратить символ на позиции 7
    System.out.println("Символ на позиции 7: " + greet.charAt(7));
  }
}

Результат вывода

Строка: Hello! World
Символ на позиции 3: l
Символ на позиции 7: W

В примере выше, мы использовали метод charAt() для доступа к символу по указанному положению.

Пример 6: другие методы Java Strings

class Main {
  public static void main(String[] args) {
    // Создать строку using the new keyword
    String example = new String("Hello! World");
    // Возвратить подстроку World
    System.out.println("Использование subString(): " + example.substring(7));
    // Преобразовать строку в нижний регистр
    System.out.println("Использование toLowerCase(): " + example.toLowerCase());
    // Преобразовать строку в верхний регистр
    System.out.println("Использование toUpperCase(): " + example.toUpperCase());
    // Заменить символ '!' на 'o'
    System.out.println("Использование replace(): " + example.replace('!', 'o'));
  }
}

Результат вывода

Использование subString(): World
Использование toLowerCase(): hello! world
Использование toUpperCase(): HELLO! WORLD
Использование replace(): Helloo World

В примере выше, мы создали строку с именем example с помощью ключевого слова new.

Здесь,

  • Метод substring() возвращает строку World

  • Метод toLowerCase() преобразует строку в нижний регистр

  • Метод toUpperCase() преобразует строку в верхний регистр

  • Метод replace() заменяет символ '!' на 'o'.

Escape-символы в строке

Строки в Java используютсяДвойные кавычкипresents.

//Создание строки
String example = "This is a string";

Теперь, если мы хотим включить в строкуДвойные кавычки. Например,

//Строка содержит двойные кавычки
String example = "This is the "String" class";

Это приведет к ошибке. Потому что использованиеДвойные кавычкичтобы представить строку. Таким образом, компилятор будет видеть "This is the " как строку.

Чтобы решить эту проблему, в Java используются escape-символы (\). Теперь мы можем включать в строкуДвойные кавычки,как показано ниже:

//Использование escape-символов
String example = "This is the \"String\" class.";

Escape-символы говорят компилятору о необходимости эскапа.Двойные кавычкии читать весь текст.

Строки в Java неменяемы

В Java создание строки означает создание объекта класса string.Изменить строку в Java невозможно.Вот почему в Java строки называютНеменяемыйПричина.

Чтобы лучше понять это, давайте посмотрим на пример:

//Создание строки
String example = "Hello!";

Здесь мы создаем объект строки "Hello!". После его создания мы не сможем изменить его.

Теперь предположим, что мы хотим изменить строку.

//Добавить другую строку к этой строке
example = example.concat(" World");

Здесь мы пытаемся добавить новый字符串 к предыдущему.

Поскольку строки в JavaНеменяемыйЭто должно привести к ошибке. Однако это работает хорошо.

Теперь看来我们可以更改 строку. Однако, на самом деле это не так. Давайте посмотрим, что на самом деле происходит здесь.

У нас есть строка "Hello!", на которую ссылается переменная с именем example. Теперь, когда мы выполняем上面的 код,

  • JVM принимает строку "Hello!"

  • Присоедините к ней строку " World"

  • Это создаст новую строку "Hello! World"

  • Переменная example теперь ссылается на новую строку

  • Предыдущая строка "Hello!" не изменяется

Внимание:каждый раз, когда мы создаем новую строку иreferим к ней переменную.

Создание строки с помощью ключевого слова new

До сих пор мы создали в Java строки, аналогичные базовым типам данных. Однако, так как строки в Java являются объектами, мы также можем создать их с помощью ключевого слова new. Например,

// Создание строки с использованием ключевого слова new
String name = new String("java string");

В предыдущем примере мы использовали ключевое слово new и конструктор String() для создания строки.

Класс String предоставляет различные другие конструкторы для создания строк.

Теперь давайте посмотрим, как процесс создания строки differs от предыдущего процесса.

Разница между использованием строковых литералов и ключевым словом new

Теперь мы знаем, как использовать строковые литералы и ключевое слово new для создания строк, давайте посмотрим, в чем основные различия между ними.

 В Java JVM поддерживает строковой пул для хранения всех строк в памяти. Строковой пул помогает повторно использовать строки.

 При создании строки с использованием строкового литерала directamente предоставляется значение строки. Поэтому компилятор сначала проверяет строковой пул, чтобы проверить, существует ли строка.

  • Если строка уже существуетне создается новая строка. Напротив, новый ссылка указывает на существующую строку.

  • Если строка не существуеттогда создается новая строка.

 Но при создании строки с помощью ключевого слова new не предоставляется значение строки напрямую. Поэтому всегда создается новая строка.