Anexar Strings em Java com Eficiência
-
concat()
Da classejava.lang.String
-
Concatenação de string usando o operador
+
-
Usando o método
concat()
dejava.lang.String
-
Usando
StringBuffer
para Concatenar Strings em Java -
Usando
StringBuilder
na Concatenação de Strings em Java
Quando falamos sobre concatenação de string em Java, o operador +
vem à mente para anexar strings de maneira mais eficiente. Como o Java não oferece suporte para sobrecarga, é especial que as strings tenham esse comportamento. Existem vários métodos, além do operador +
, usados para anexar uma string em Java que são;
StringBuffer
StringBuilder
concat()
Da classe java.lang.String
Ambas as classes StringBuffer
e StringBuilder
são usadas para este propósito. StringBuilder
tem importância porque é o método mais rápido para concatenar strings. StringBuffer
tem prioridade em segundo lugar devido ao método sincronizado e porque os outros métodos além deles são 1000 vezes mais lentos do que estes dois. Aqui veremos um exemplo desses quatro métodos.
public class Main {
public static void main(String args[]) {
// 1st method of concat
String str1 = "Most";
str1 = str1.concat(" Welcome");
str1 = str1.concat(" to University");
System.out.println(str1);
// 2nd method of concat
String str2 = "Today";
str2 = str2.concat(" is").concat(" your first").concat(" day");
System.out.println(str2);
}
}
Resultado:
Most Welcome to University
Today is your first day
Concatenação de string usando o operador +
Este é o método mais simples para unir strings e valores numéricos em Java. Quando os usuários têm dois ou mais valores primitivos, como short
, char
ou int
no início de uma concatenação de string, eles devem ser convertidos em strings explicitamente. Por exemplo, System.out.println(300, + 'B'+ "")
nunca imprimirá 300B, ele imprimirá 366 tomando o valor ASCII
de B e, em seguida, adicionando-o a 300. Por outro lado , se usarmos System.out.println('', + 300 +'B')
, ele imprimirá 300B. Todas as varreduras do operador +
devem ser concatenadas em várias chamadas StringBuilder.append()
antes de chamar String()
.
Usando o método concat()
de java.lang.String
O método concat(String str)
concatena algumas Strings específicas no final da string. Ele aloca o char[]
de comprimento, igual ao comprimento combinado de duas Strings. Este método copia os dados da String para essa string e cria um novo objeto String do construtor particular da String, que não copia a entrada char[]
conforme fornecido a seguir.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the first string: ");
String str1 = sc.next();
System.out.println("Enter the second string: ");
String str2 = sc.next();
String result = str1 + str2;
System.out.println(result);
}
}
Resultado:
Enter the first string:
United
Enter the second string:
Kingdom
UnitedKingdom
Usando StringBuffer
para Concatenar Strings em Java
Este é o método mais apropriado para concatenar várias strings, inteiros e outras partes de Java quando StringBuilder
não está disponível. Ele funciona mais rápido do que os métodos de operador concat()
e +
. A única desvantagem dessa abordagem é que os métodos de acréscimo por StringBuffer
são sincronizados. A sua metodologia de trabalho é semelhante ao método StringBuilder
. Ele também fornece diferentes métodos de acréscimo sobrecarregado para concatenar char
, int
, short
, etc.
public class Main {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("My ");
sb.append("Country");
System.out.println(sb);
}
}
Resultado:
My Country
Usando StringBuilder
na Concatenação de Strings em Java
Este é um dos melhores métodos para concatenar strings em Java. Mais importante ainda, quando os usuários estão concatenando várias cadeias de caracteres. Esse método é fácil e eficiente de usar quando os usuários precisam anexar várias strings. Mas esse método não é comumente usado quando os usuários precisam concatenar strings.
public class Main {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder("My ");
sb.append("Country");
System.out.println(sb);
}
}
Resultado:
My Country