Java에서 공간을 %20으로 바꾸기

Shubham Vora 2023년10월12일
  1. Java에서 replaceAll() 메서드를 사용하여 공백을 %20으로 바꿉니다.
  2. StringBuilder 클래스를 사용하고 새 문자열을 만들어 Java에서 공백을 %20으로 바꿉니다.
Java에서 공간을 %20으로 바꾸기

이 기사에서는 주어진 문자열의 모든 공백을 %20으로 대체하는 두 가지 방법을 배웁니다.

Java에서 replaceAll() 메서드를 사용하여 공백을 %20으로 바꿉니다.

여기서 우리는 모든 공백을 %20 문자열로 대체하기 위해 내장된 Java 메서드인 replaceAll()을 사용합니다.

예제에서는 문자열을 생성하고 해당 문자열을 참조로 사용하여 replaceAll() 메서드를 실행했습니다.

replaceAll() 메서드 구문:

string.replaceAll(oldString, newString);

사용자가 replaceAll() 메서드의 구문에서 볼 수 있듯이 문자열을 교체해야 하는 첫 번째 매개변수로 사용하고 새 문자열을 첫 번째 매개변수를 대체할 두 번째 매개변수로 사용합니다.

예제 코드:

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

출력:

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

위의 출력에서 사용자는 replaceAll()이 문자열 끝에 있는 모든 공백을 포함하여 모든 공백을 %20으로 바꾼 것을 볼 수 있습니다. 사용자가 끝에서 공백을 제거하려면 String 라이브러리의 trim() 메서드를 사용해야 합니다.

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

출력:

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

이제 사용자는 위의 출력에서 trim() 메서드가 끝에서 공백을 제거했음을 관찰할 수 있으며, 이것이 replaceAll() 메서드가 끝에 %20 문자열을 추가하지 않은 이유입니다.

시간 복잡도

위 예제의 시간 복잡도는 O(n)이며 n은 문자열 길이를 나타냅니다. replaceAll() 메서드의 시간 복잡도는 O(n)입니다.

공간 복잡성

위에 표시된 코드의 공간 복잡도는 O(1)입니다. 추가 공백을 사용하지 않기 때문입니다.

StringBuilder 클래스를 사용하고 새 문자열을 만들어 Java에서 공백을 %20으로 바꿉니다.

이 방법에서는 StringBuilder() 클래스를 사용하여 사용자 지정 길이의 문자열을 만듭니다. 사용자는 여분의 공백을 사용하여 모든 공백을 %20 문자열로 바꾸려면 아래 단계를 따라야 합니다.

  • StringBuilder 클래스의 개체를 만들고 빈 문자열로 초기화합니다. 여기에서 resultString을 만들었습니다.
  • for 루프 또는 while 루프를 사용하여 주어진 문자열을 반복합니다.
  • 위치 i의 문자가 주어진 문자열에서 공백인 경우 resultString%20을 추가합니다. 그렇지 않으면 같은 문자를 resultString에 추가합니다.
  • 반복이 완료되면 resultString을 반환하거나 인쇄합니다.

예제 코드:

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

출력:

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

시간 복잡도

위의 알고리즘은 O(n) 시간 복잡도를 가지며 n은 문자열을 반복할 때 주어진 문자열의 길이를 나타냅니다.

공간 복잡성

위 알고리즘의 공간 복잡도는 O(n)이며 StringBuilder() 클래스를 사용하여 새 문자열을 만들고 저장합니다.

주어진 문자열의 하위 문자열 또는 문자를 새 하위 문자열로 바꾸는 두 가지 방법을 배웠습니다. 첫 번째 부분에서는 Java의 내장 replaceAll() 메서드를 사용하고 두 번째 부분에서는 사용자 지정 알고리즘을 만들었습니다.

<replaceAll()> 메서드는 사용하기 쉽고 한 줄의 코드이므로 사용하는 것이 좋습니다.

작가: Shubham Vora
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