Java에서 공간을 %20으로 바꾸기
-
Java에서
replaceAll()
메서드를 사용하여 공백을%20
으로 바꿉니다. -
StringBuilder
클래스를 사용하고 새 문자열을 만들어 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()> 메서드는 사용하기 쉽고 한 줄의 코드이므로 사용하는 것이 좋습니다.