Concatenação de Strings em Java

JavaBeginner
Pratique Agora

Introdução

Concatenação é o processo de combinar duas ou mais strings em uma única string. Em Java, existem várias maneiras de concatenar strings. Cada método tem suas vantagens e desvantagens dependendo dos requisitos. Este laboratório (lab) cobrirá as várias maneiras pelas quais podemos concatenar strings em Java.

Concatenar Strings usando o Operador +

O método mais simples de combinar strings em Java é usando o operador +. O operador + é sobrecarregado (overloaded) para trabalhar com strings. Siga o bloco de código abaixo para ver como concatenar strings usando o operador +.

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
    }
}

Concatenar Strings usando a Classe StringBuilder

Outra maneira de concatenar strings em Java é usando a classe StringBuilder. A classe StringBuilder fornece o método append() para combinar duas ou mais strings. StringBuilder é mais rápido que a classe String ao concatenar strings. Siga o bloco de código abaixo sobre como concatenar strings usando a classe 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
    }
}

Concatenar Strings usando a Classe StringBuffer

Semelhante ao StringBuilder, StringBuffer também é uma sequência mutável de caracteres e fornece o método append() para anexar as strings. StringBuffer é sincronizado, o que significa que múltiplos threads não podem acessá-lo simultaneamente.

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
    }
}

Concatenar Strings usando o Método String.concat()

O método concat() pode ser usado para concatenar duas strings. Este método internamente usa a classe StringBuilder para realizar a concatenação. Siga o bloco de código abaixo sobre como usar o método concat() para concatenar strings.

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
    }
}

Concatenar Strings usando o Método String.join()

O método String.join() é usado para concatenar múltiplas strings com um delimitador. O primeiro parâmetro de String.join() é o delimitador que precisa ser adicionado entre as strings. Este método funciona a partir do Java 8. Siga o bloco de código abaixo para ver como concatenar strings usando o método 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
    }
}

Concatenar Strings usando o Método String.format()

O método String.format() retorna uma string formatada. Ele recebe a string de formato como o primeiro parâmetro ao qual as variáveis string precisam ser concatenadas. Ele funciona de forma semelhante à função printf em C. Siga o bloco de código abaixo sobre como usar o método String.format() para concatenar strings.

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
    }
}

Concatenar Strings usando o Método Arrays.toString()

O método Arrays.toString() é usado para retornar uma string que representa o conteúdo do array. Siga o bloco de código abaixo para ver como usar o método Arrays.toString() para concatenar um array de strings.

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]
    }
}

Concatenar Strings usando a Classe StringJoiner

A classe StringJoiner é usada para juntar strings com um delimitador. A classe StringJoiner está disponível a partir do Java 8. No exemplo a seguir, vamos usar a classe StringJoiner para concatenar três strings com um delimitador. Siga o bloco de código abaixo sobre como usar a classe StringJoiner para concatenar strings.

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
    }
}

Concatenar Strings usando o Método Collection.join()

Também podemos usar o método join() da classe Collections para concatenar uma lista de strings. Siga o bloco de código abaixo para ver como usar o método Collections.join() para concatenar uma lista de strings.

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
    }
}

Concatenar Strings usando o Método Files.lines()

Também podemos usar o método Files.lines() introduzido no Java 8 para concatenar strings. Siga o bloco de código abaixo para ver como usar o método Files.lines() para concatenar strings.

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

Nota: O bloco de código acima lê o conteúdo de um arquivo chamado file1.txt e concatena o conteúdo em uma única string.

Resumo

Em resumo, existem muitas maneiras de concatenar strings em Java. Neste laboratório, cobrimos vários métodos, como o operador +, a classe StringBuilder, a classe StringBuffer, o método String.concat(), o método String.join(), o método String.format(), o método Arrays.toString(), a classe StringJoiner, o método Collections.join() e o método Files.lines(). É necessário entender as nuances de cada método e usá-lo de forma apropriada para obter o resultado desejado.