Ersetzen Sie das Leerzeichen in Java durch %20

Shubham Vora 12 Oktober 2023
  1. Verwenden Sie die Methode replaceAll(), um das Leerzeichen in Java durch %20 zu ersetzen
  2. Verwenden Sie die Klasse StringBuilder und erstellen Sie eine neue Zeichenfolge, um das Leerzeichen in Java durch %20 zu ersetzen
Ersetzen Sie das Leerzeichen in Java durch %20

In diesem Artikel lernen wir zwei Methoden kennen, um alle Leerzeichen der angegebenen Zeichenfolge durch %20 zu ersetzen.

Verwenden Sie die Methode replaceAll(), um das Leerzeichen in Java durch %20 zu ersetzen

Hier verwenden wir die eingebaute Java-Methode replaceAll(), um alle Leerzeichen durch einen %20-String zu ersetzen.

Im Beispiel haben wir den String erstellt und die Methode replaceAll() ausgeführt, indem wir diesen String als Referenz genommen haben.

Syntax der Methode replaceAll():

string.replaceAll(oldString, newString);

Wie Benutzer in der Syntax der replaceAll()-Methode sehen können, nimmt sie den String als ersten Parameter, der ersetzt werden muss, und einen neuen String als zweiten Parameter, der den ersten ersetzt.

Beispielcode:

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);
  }
}

Ausgang:

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

In der obigen Ausgabe können Benutzer sehen, dass replaceAll() alle Leerzeichen durch %20 ersetzt hat, sogar alle Leerzeichen am Ende des Strings. Wenn Benutzer die Leerzeichen am Ende entfernen möchten, sollten sie die Methode trim() der String-Bibliothek verwenden.

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

Ausgang:

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

Jetzt können Benutzer in der obigen Ausgabe beobachten, dass die Methode trim() die Leerzeichen am Ende entfernt hat, und deshalb hat die Methode replaceAll() den String %20 nicht am Ende hinzugefügt.

Zeitkomplexität

Die Zeitkomplexität des obigen Beispiels ist O(n), wobei n die Stringlänge darstellt. Die Zeitkomplexität der Methode replaceAll() ist O(n).

Raumkomplexität

Die Leerzeichenkomplexität des oben gezeigten Codes ist O(1), da wir keine zusätzlichen Leerzeichen verwenden.

Verwenden Sie die Klasse StringBuilder und erstellen Sie eine neue Zeichenfolge, um das Leerzeichen in Java durch %20 zu ersetzen

In dieser Methode verwenden wir die Klasse StringBuilder(), um eine Zeichenfolge mit benutzerdefinierter Länge zu erstellen. Benutzer sollten die folgenden Schritte ausführen, um alle Leerzeichen durch die Zeichenfolge %20 zu ersetzen, indem sie das zusätzliche Leerzeichen verwenden.

  • Erstellen Sie ein Objekt der Klasse StringBuilder und initialisieren Sie es mit einem leeren String. Hier haben wir den resultString erstellt.
  • Durchlaufen Sie die angegebene Zeichenfolge mit einer for-Schleife oder einer while-Schleife.
  • Wenn das Zeichen an Position i ein Leerzeichen in der angegebenen Zeichenfolge ist, hängen Sie %20 an resultString an. Andernfalls hängen Sie das gleiche Zeichen an resultString an.
  • Geben Sie den resultString zurück oder drucken Sie ihn, sobald die Iteration abgeschlossen ist.

Beispielcode:

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);
  }
}

Ausgang:

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

Zeitkomplexität

Der obige Algorithmus hat eine Zeitkomplexität von O(n), wobei sich n auf die Länge der gegebenen Zeichenfolge bezieht, während wir die Zeichenfolge durchlaufen.

Raumkomplexität

Die Raumkomplexität des obigen Algorithmus ist O(n), da wir die Klasse StringBuilder() verwenden, um den neuen String zu erstellen und zu speichern.

Wir haben zwei Methoden kennengelernt, um einen Teilstring oder ein Zeichen in einem gegebenen String durch einen neuen Teilstring zu ersetzen. Im ersten Teil haben wir die eingebaute replaceAll()-Methode von Java verwendet und im zweiten Teil den benutzerdefinierten Algorithmus erstellt.

Es wird empfohlen, die Methode replaceAll() zu verwenden, da sie einfach zu verwenden ist und eine einzige Codezeile benötigt.

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