CodeGym /Blogue Java /Random-PT /Concatenação de String em Java
John Squirrels
Nível 41
San Francisco

Concatenação de String em Java

Publicado no grupo Random-PT
Java String concatenation é uma operação para unir duas ou mais strings e retornar uma nova. Além disso, a operação de concatenação pode ser usada para converter tipos em strings. Você pode concatenar strings em Java de duas maneiras diferentes.

método concat()

O método Concat() anexa a string especificada no final da string fornecida e, em seguida, retorna e retorna uma nova string formada. Claro que podemos usar o método concat() para unir três ou mais strings.

A assinatura do método concat()


public String concat(String str)
O método concatena a string str no final da string atual. Por exemplo:

String s1 = “Hello ”; 
s1.concat("World")
retorna uma nova string “Hello World”.

Exemplo de método Concat()

Vamos concatenar duas strings após sua inicialização e depois concatenar mais strings. E mais um exemplo interessante: vamos criar um método que retornaria diferentes mensagens de acordo com o argumento.

public class ConcatTest {

    public static void main(String[] args) {
        //String concat with concat() method 
        String string1 = "I learn ";
        String string2 = "concatenation in Java";
        //here we use concat() method to join the two strings above
        String result = string1.concat(string2);
        System.out.println(result);
        //concat() method to join 4 strings
        String myWebSite = "Code".concat("Gym").concat(".cc").concat("/quest");
        System.out.println(myWebSite); // here we've got  "CodeGym.cc/quest"

        System.out.println(myMessage(true));
        System.out.println(myMessage(false));
    }

    private static String myMessage(boolean b) {   //concat() method with selection statement 
        return "I have".concat(b ? " " : "n't ").concat("got it");
    }

}
A saída é:
Eu aprendo concatenação em Java CodeGym.cc/quest Eu entendi Eu não entendi
É importante saber que o método concat() não altera a string, mas cria uma nova como resultado da fusão da atual com a passada como parâmetro. Portanto, o método retorna um novo objeto String , é por isso que você pode criar cadeias tão longas de String concat.

Concatenação usando operadores sobrecarregados "+" e "+="

Você pode usar esses dois operadores da mesma forma que com números. Eles funcionam exatamente como concat() . Vamos concatenar a string “Code” e a string “Gym”.

public class StringConcat {
   public static void main(String[] args) {

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Normalmente Java não permite operações de sobrecarga para classes de usuário, mas esses dois operadores funcionam como sobrecarregados. Você pode pensar que dentro do operador + está escondido concat() , mas, na verdade, outro mecanismo é usado aqui. Se olharmos o bytecode do programa Java, veremos que StringBuilder foi criado e seu método append() é usado. O compilador Java vê o operador “+” e percebe que os operandos são strings, não tipos primitivos. Então funciona como concat.

public class StringTest2 {

   public static void main(String[] args) {

       String hello = "hello";
       String world = " world!";

       String helloworld = (new StringBuilder().append(hello).append(world).toString());
       System.out.println(helloworld);
       //this is the same as:
       String result = hello + world;
   }
}

Concat(0) ou + ?

Se você precisar mesclar strings apenas uma vez, use o método concat() . Para todos os outros casos, é melhor usar o operador + ou Stringbuffer / StringBuilder . Além disso, o operador + é usado para converter tipos. Se um dos operandos for igual, por exemplo, o número e o segundo for uma string, na saída obteremos uma string. Exemplo:

public class StringConcat {
   public static void main(String[] args) {
       int myInt = 5;
       String myString = " days";

       System.out.println(myInt + myString);
       boolean b = (myInt + myString) instanceof String;
       System.out.println(b);
   }
}
Usamos instanceof para verificar se (myInt + myString) é uma String. Aqui está a saída deste programa:
5 dias verdadeiro
Observe também que o operador + e concat() funcionam de maneira diferente se uma das strings for nula. Se um dos operandos ao usar o operador + ou += for apenas um — uma string, então, como já dissemos, ocorre a conversão de tipo. O mesmo se aplica a null. Vamos apenas obter uma nova string:

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
A saída é:
livro nulo verdadeiro
Se aplicarmos o método concat() para a mesma operação, obteremos um NullPointerException .

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString.concat(null));

   }
}
A saída é:
Exceção no encadeamento "main" java.lang.NullPointerException em java.base/java.lang.String.concat(String.java:1972) em StringConcat.main(StringConcat.java:6)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION