Конкатенация строк

Конкатенация строк (сцепление) — это операция объединения строк. Для этой операции в Java используется знак +. К строке можно присоединять не только другую строку, но и значение любого другого типа, которое будет преобразовано к строке автоматически. Как же понять в каких случаях знак + это конкатенация, а в каких случаях арифметическая операция?

Важно запомнить всего два правила:

  • Если один из операндов типа String, то оператор + используется как конкатенация строк.
  • Если оба операнда являются числами, то оператор + используется в качестве сложения.

В этом примере просто объединяем две строки:

public class StringExample1 {
    public static void main(String[] args) {
        String str1 = "world";
        System.out.println("Hello " + str1);
        System.out.println("First line\n" + "Second line");
    }
}

В следующем примере в первом System.out.println на консоль выведется строка "X Y". Мы объединяем char со String - это конкатенация. Во втором же System.out.println на консоль выведется не строка, как многие ожидают, а число 177. Почему число? Тип char является псевдоцелочисленным типом, и может участвовать в арифметических операциях. В данном случае складываются коды символов:

public class StringExample2 {
    public static void main(String[] args) {
        char x, y;
        x = 88;  // Код символа 'X'
        y = 'Y';
        System.out.println(x + " " + y); //Выведется X Y
        System.out.println(x + y); //Выведется 177
    }
}

В следующем примере на консоль выведется значение "str=48" - не забываем о приоритетах операций. Операция умножения имеет больший приоритет чем сложение:

public class StringExample3 {
    public static void main(String[] args) {
        System.out.println("str=" + 4 + 4 * 2);
    }
}

В строке можно использовать также кодировку Unicode, так же как и в переменных типа char:

public class StringExample4 {
    public static void main(String[] args) {
        // Слово "Украина" в кодировке Unicode
        System.out.println("\u0423\u043A\u0440\u0430\u0438\u043D\u0430");
    }
}

Чтобы сравнить на равенство две строки, необходимо воспользоваться методом equals()или Objects.equals() (начиная с Java 7):

import java.util.Objects;

public class StringExample5 {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "Hi";
        System.out.println(str1.equals(str2));
        System.out.println(Objects.equals(str1, str2));
    }
}

Длина строки определяется с помощью метода length():

public class StringExample6 {
    public static void main(String[] args) {
        String str = "Hello";
        System.out.println("Длина строки: " + str.length());
    }
}

 

Презентацию с видео можно скачать на Patreon.

Read also:
Trustpilot
Trustpilot
Comments