Las strings se definen como una array de caracteres. La diferencia entre una array de caracteres y una string es que la string termina con un carácter especial ‘\0’. Dado que las arrays son inmutables (no pueden crecer), las strings también son inmutables. Cada vez que se realiza un cambio en una String, se crea una String completamente nueva.
La concatenación es el proceso de unión de extremo a extremo. Tomemos un ejemplo para entender qué significa concatenación en inglés.
Person 1 speaking to Person 2 - ItsCodingEra Person 2 speaking to Person 1 - 2020India Now, let us carry a process whose output is as follows- ItsCodingEra2020India This process is called concatenation.
Ejemplo:
Input String = "Geeks" + "for" + "Geeks"; OutputString = "GeeksforGeeks" ;
Existen numerosas formas en las que podemos decirle a las computadoras que lo hagan, que se denominan métodos. Describamos cómo una computadora puede realizar una acción a través de nuestros métodos de diferentes maneras.
Esta acción puede tener lugar a través de 4 métodos :
- Usando el operador ‘+’
- Usando el método concat() i nbuilt
- Usando StringBuilder
- Usando StringBuffer
Vamos a describirlos e implementarlos uno por uno.
Método 1: Concatenación de strings usando el operador ‘+’
Java
// Java program to concatenate string import java.lang.*; class GFG { public static void main(String[] args) { String str = ""; // timer-start time long startTime = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { // string concatenation str += Integer.toString(0); } // timer-end time long endTime = System.currentTimeMillis(); // display the result System.out.println( "Time taken to concatenate 100000 Strings using '+' operator : " + (endTime - startTime) + " ms"); } }
Time taken to concatenate 100000 Strings using '+' operator : 2126 ms
Método 2: usando la función incorporada concat()
El método Concat(String str) concatena la string especificada al final de esta string. Este método agrega la string especificada al final de la string dada y devuelve la string combinada.
Ejemplo :
String str="GeeksforGeeks"; s1 = s1.concat(".").concat("com");
Java
// Java program to concatenate string import java.lang.*; class GFG { public static void main(String[] args) { String str = ""; long startTime = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { str.concat(Integer.toString(0)); } long endTime = System.currentTimeMillis(); System.out.println( "Time taken to concatenate 100000 Strings using concat() method : " + (endTime - startTime) + " ms"); } }
Time taken to concatenate 100000 Strings using concat() method : 46 ms
Método 3: mediante el uso de StringBuilder (Best Way)
StringBuilder representa una secuencia mutable de caracteres. Dado que String Class en Java crea una secuencia inmutable de caracteres, la clase StringBuilder proporciona una alternativa a String Class, ya que crea una secuencia mutable de caracteres.
Ejemplo :
StringBuilder str = new StringBuilder(); str.append("GFG");
Complejidad de tiempo para la concatenación usando el método StringBuilder:
Java
// Java program to concatenate string import java.lang.*; class GFG { public static void main(String[] args) { StringBuilder str = new StringBuilder(); long startTime = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { str.append(0); } long endTime = System.currentTimeMillis(); System.out.println( "Time taken to concatenate 100000 Strings using StringBuilder append : " + (endTime - startTime) + " ms"); } }
Time taken to concatenate 100000 Strings using StringBuilder append : 34 ms
Método 4: mediante el uso de StringBuffer
StringBuffer es una clase par de String que proporciona gran parte de la funcionalidad de las strings. La string representa secuencias de caracteres inmutables de longitud fija, mientras que StringBuffer representa secuencias de caracteres modificables y modificables.
Ejemplo :
StringBuffer s = new StringBuffer("GeeksforGeeks");
Java
// Java program to concatenate string import java.lang.*; class GFG { public static void main(String[] args) { StringBuffer str = new StringBuffer(); long startTime = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { str.append(0); } long endTime = System.currentTimeMillis(); System.out.println( "Time taken to concatenate 100000 Strings using StringBuffer append : " + (endTime - startTime) + " ms"); } }
Time taken to concatenate 100000 Strings using StringBuffer append : 41 ms
Publicación traducida automáticamente
Artículo escrito por abhishekr0ut y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA