Reemplazar espacio con% 20 en Java
-
Use el método
replaceAll()para reemplazar el espacio con%20en Java -
Use la clase
StringBuildery cree una nueva cadena para reemplazar el espacio con%20en 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
StringBuildere inicialícelo con una cadena vacía. Aquí, hemos creado elresultString. -
Iterar a través de la cadena dada usando un bucle for o un bucle while.
-
Si el carácter en la posición
ies un espacio en la cadena dada, agregue%20aresultString. De lo contrario, agregue el mismo carácter aresultString. -
Devuelve o imprime el
resultStringuna 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.
