Урок 4

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

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

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

Пример 1. Конкатенация строк

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

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");
    }
}

Пример 2. Конкатенация строк и символов

В этом примере в первом 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
    }
}

Пример 3. Конкатенация строк и чисел

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

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

Пример 4. Использование кодировки Unicode в строке

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

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

Пример 5. Сравнение строк

Чтобы сравнить на равенство две строки необходимо воспользоваться методом 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));
    }
}

Пример 6. Сравнение строк

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

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



0 Comments
Leave your comment: