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

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Конкатенация - это процесс объединения двух или более строк в одну строку. В Java существуют несколько способов конкатенации строк. Каждый метод имеет свои достоинства и недостатки в зависимости от требований. В этом лабе будут рассмотрены различные способы конкатенации строк в Java.

Конкатенация строк с использованием оператора +

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

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String combination = a + " " + b;   // Using + operator to concatenate strings
        System.out.println(combination);    // Output: Hello World
    }
}

Конкатенация строк с использованием класса StringBuilder

Еще один способ конкатенации строк в Java - это использование класса StringBuilder. Класс StringBuilder предоставляет метод append(), чтобы объединить две или более строк. StringBuilder работает быстрее класса String при конкатенации строк. Следуйте коду ниже, чтобы понять, как конкатенировать строки с использованием класса StringBuilder.

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        StringBuilder builder = new StringBuilder();
        builder.append(a).append(" ").append(b);   // Using StringBuilder class to concatenate strings
        String combination = builder.toString();
        System.out.println(combination);   // Output: Hello World
    }
}

Конкатенация строк с использованием класса StringBuffer

Похожим на StringBuilder, StringBuffer также представляет собой изменяемую последовательность символов и предоставляет метод append(), чтобы добавлять строки. StringBuffer синхронизирован, что означает, что несколько потоков не могут одновременно обращаться к нему.

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        StringBuffer buffer = new StringBuffer();
        buffer.append(a).append(" ").append(b);   // Using StringBuffer class to concatenate strings
        String combination = buffer.toString();
        System.out.println(combination);   // Output: Hello World
    }
}

Конкатенация строк с использованием метода String.concat()

Метод concat() можно использовать для конкатенации двух строк. Этот метод внутри использует класс StringBuilder для выполнения конкатенации. Следуйте коду ниже, чтобы понять, как использовать метод concat() для конкатенации строк.

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String combination = a.concat(" ").concat(b);   // Using String.concat() method to concatenate strings
        System.out.println(combination);   // Output: Hello World
    }
}

Конкатенация строк с использованием метода String.join()

Метод String.join() используется для конкатенации нескольких строк с разделителем. Первым параметром метода String.join() является разделитель, который должен быть добавлен между строками. Этот метод работает начиная с Java 8. Следуйте коду ниже, чтобы увидеть, как конкатенировать строки с использованием метода String.join().

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String c = "Java";
        String combination = String.join(" ", a, b, c);   // Using String.join() method to concatenate strings
        System.out.println(combination);   // Output: Hello World Java
    }
}

Конкатенация строк с использованием метода String.format()

Метод String.format() возвращает отформатированную строку. Он принимает строку формата в качестве первого параметра, к которой необходимо конкатенировать переменные строк. Работает он аналогично функции printf в C. Следуйте коду ниже, чтобы понять, как использовать метод String.format() для конкатенации строк.

public class ConcatenateStrings {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        String c = "Java";
        String combination = String.format("%s %s %s", a, b, c);  // Using String.format() method to concatenate strings
        System.out.println(combination);   // Output: Hello World Java
    }
}

Конкатенация строк с использованием метода Arrays.toString()

Метод Arrays.toString() используется для возврата строки, представляющей содержимое массива. Следуйте коду ниже, чтобы увидеть, как использовать метод Arrays.toString() для конкатенации массива строк.

import java.util.Arrays;
public class ConcatenateStrings {
    public static void main(String[] args) {
        String[] strings = {"Hello", "World", "Java"};
        String combination = Arrays.toString(strings);   // Using Arrays.toString() method to concatenate an array of strings
        System.out.println(combination);   // Output: [Hello, World, Java]
    }
}

Конкатенация строк с использованием класса StringJoiner

Класс StringJoiner используется для объединения строк с разделителем. Класс StringJoiner доступен начиная с Java 8. В следующем примере мы будем использовать класс StringJoiner для конкатенации трех строк с разделителем. Следуйте коду ниже, чтобы понять, как использовать класс StringJoiner для конкатенации строк.

import java.util.StringJoiner;
public class ConcatenateStrings {
    public static void main(String[] args) {
        StringJoiner joiner = new StringJoiner(" ");
        joiner.add("Hello");  // Using StringJoiner class to concatenate strings
        joiner.add("World");
        joiner.add("Java");
        String combination = joiner.toString();
        System.out.println(combination);   // Output: Hello World Java
    }
}

Конкатенация строк с использованием метода Collection.join()

Мы также можем использовать метод join() класса Collections для конкатенации списка строк. Следуйте коду ниже, чтобы увидеть, как использовать метод Collections.join() для конкатенации списка строк.

import java.util.Arrays;
import java.util.List;
import java.util.Collections;
public class ConcatenateStrings {
    public static void main(String[] args) {
        List<String> strings = Arrays.asList("Hello", "World", "Java");
        String separator = " ";
        String combination = String.join(separator, strings);   // Using Collections.join() method to concatenate a list of strings
        System.out.println(combination);   // Output: Hello World Java
    }
}

Конкатенация строк с использованием метода Files.lines()

Мы также можем использовать метод Files.lines(), введенный в Java 8, для конкатенации строк. Следуйте коду ниже, чтобы увидеть, как использовать метод Files.lines() для конкатенации строк.

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ConcatenateStrings {
    public static void main(String[] args) {
        try {
            String combination = Files.lines(Paths.get("file1.txt"))
                                     .reduce("", (line1, line2) -> line1 + line2);
            System.out.println(combination);
        } catch (IOException exception) {
            System.out.println("Exception Occurred: " + exception);
        }
    }
}

Примечание: Код выше читает содержимое из файла с именем file1.txt и конкатенирует его содержимое в одну строку.

Резюме

Кратко говоря, в Java есть множество способов конкатенации строк. В этом практическом занятии мы рассмотрели различные методы, такие как оператор +, класс StringBuilder, класс StringBuffer, метод String.concat(), метод String.join(), метод String.format(), метод Arrays.toString(), класс StringJoiner, метод Collections.join() и метод Files.lines(). Необходимо понять тонкости каждого метода и использовать его в соответствии с целями, чтобы получить ожидаемый результат.