Reemplazar espacio con% 20 en Java

Shubham Vora 12 octubre 2023
  1. Use el método replaceAll() para reemplazar el espacio con %20 en Java
  2. Use la clase StringBuilder y cree una nueva cadena para reemplazar el espacio con %20 en Java
Reemplazar espacio con% 20 en Java

En este artículo, aprenderemos dos métodos para reemplazar todos los espacios de la cadena dada con %20.

Use el método replaceAll() para reemplazar el espacio con %20 en Java

Aquí, usamos replaceAll(), un método integrado de Java, para reemplazar todos los espacios con una cadena %20.

En el ejemplo, creamos la cadena y ejecutamos el método replaceAll() tomando esa cadena como referencia.

Sintaxis del método replaceAll():

string.replaceAll(oldString, newString);

Como los usuarios pueden ver en la sintaxis del método replaceAll(), toma la cadena como primer parámetro que necesita ser reemplazado y una nueva cadena como segundo parámetro que reemplazará al primero.

Código de ejemplo:

class Test {
  public static void main(String[] args) {
    // given string
    String str = "Hello user!, Welcome to the DelftStack.   ";
    // replace spaces with %20
    str = str.replaceAll(" ", "%20");
    System.out.println(str);
  }
}

Producción :

Hello%20user!,%20Welcome%20to%20the%20DelftStack.%20%20%20

En el resultado anterior, los usuarios pueden ver que replaceAll() ha reemplazado todos los espacios con %20, incluso todos los espacios al final de la cadena. Si los usuarios quieren eliminar los espacios del final, deben usar el método trim() de la biblioteca String.

str = str.trim().replaceAll(" ", "%20");

Producción :

Hello%20user!,%20Welcome%20to%20the%20DelftStack.

Ahora, los usuarios pueden observar en el resultado anterior que el método trim() ha eliminado los espacios del final, y es por eso que el método replaceAll() no ha agregado la cadena %20 al final.

Complejidad del tiempo

La complejidad temporal del ejemplo anterior es O(n), donde n representa la longitud de la cadena. La complejidad temporal del método replaceAll() es O(n).

Complejidad espacial

La complejidad del espacio del código que se muestra arriba es O(1), ya que no estamos usando espacios adicionales.

Use la clase StringBuilder y cree una nueva cadena para reemplazar el espacio con %20 en Java

En este método, usaremos la clase StringBuilder() para crear una cadena de longitud personalizada. Los usuarios deben seguir los pasos a continuación para reemplazar todos los espacios con la cadena %20 utilizando el espacio adicional.

  • Cree un objeto de la clase StringBuilder e inicialícelo con una cadena vacía. Aquí, hemos creado el resultString.
  • Iterar a través de la cadena dada usando un bucle for o un bucle while.
  • Si el carácter en la posición i es un espacio en la cadena dada, agregue %20 a resultString. De lo contrario, agregue el mismo carácter a resultString.
  • Devuelve o imprime el resultString una vez que se completa la iteración.

Código de ejemplo:

class Test {
  public static void main(String[] args) {
    StringBuilder resultString = new StringBuilder("");
    // given string
    String str = "Java is One of the best Programming Language.";
    // Remove spaces from the end of the string.
    str = str.trim();
    // iterate through string
    for (int i = 0; i < str.length(); i++) {
      // if the character at position i is a string, append %20 to string builder. Otherwise, append
      // same character,
      if (str.charAt(i) == ' ') {
        resultString.append("%20");
      } else {
        resultString.append(str.charAt(i));
      }
    }
    // print the StringBuilder after appending
    System.out.println(resultString);
  }
}

Producción :

Java%20is%20One%20of%20the%20best%20Programming%20Language.

Complejidad del tiempo

El algoritmo anterior tiene una complejidad de tiempo O(n), donde n se refiere a la longitud de la cadena dada a medida que iteramos a través de la cadena.

Complejidad espacial

La complejidad espacial del algoritmo anterior es O(n), ya que usamos la clase StringBuilder() para crear y almacenar la nueva cadena.

Hemos aprendido dos métodos para reemplazar una subcadena o carácter en una cadena determinada con una nueva subcadena. En la primera parte, usamos el método incorporado replaceAll() de Java y creamos el algoritmo personalizado en la segunda parte.

Se recomienda usar el método replaceAll() ya que es fácil de usar y una sola línea de código.

Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub