CodeGym/Java Blog/무작위의/Java에서 문자열을 뒤집는 다양한 방법
John Squirrels
레벨 41
San Francisco

Java에서 문자열을 뒤집는 다양한 방법

무작위의 그룹에 게시되었습니다
회원
Java의 문자열은 문자 배열이라고도 할 수 있습니다. Java의 문자열은 텍스트/문자를 저장하는 데 사용됩니다. Java 프로그래밍 언어에서 문자열은 객체로 간주됩니다. Java에서 문자열은 String이라는 클래스인 미리 정의된 객체입니다. 모든 문자열 변수는 Java의 String 클래스의 인스턴스입니다. 따라서 우리는 Java의 문자열이 다른 프로그래밍 언어의 int 또는 char과 같은 기본 유형이 아니라는 것을 이해할 수 있습니다. 이 기사에서는 Java에서 문자열을 역방향으로 변환하는 방법을 설명합니다. 이를 위해서는 Java 에서 문자열을 생성하는 방법 과 내장된 문자열 메서드의 기본 개념, 루프를 사용하여 작업을 수행하는 방법을 알아야 합니다.

기사의 범위

- 이번 글에서는 자바에서 문자열을 반전시키는 다양한 방법에 대해 알아 보겠습니다. - 또한 Java에서 문자열을 반전시킬 수 있는 사전 구축된 메소드도 살펴보겠습니다. - 자바에서 각 역방향 메소드의 시간 및 공간 복잡도에 대해서도 읽어보겠습니다. - Java에서 문자열을 뒤집는 방법에는 여러 가지가 있으며 각각 장점과 단점이 있습니다. 이 기사에서는 Java에서 문자열을 반전시키는 데 가장 일반적으로 사용되는 몇 가지 방법을 살펴보겠습니다.

소개

문자열은 Java에서 불변 객체이고, 문자열은 Java에서 문자의 시퀀스일 뿐입니다. Java의 한 줄 문자열은 작은 따옴표로 정의되는 반면 Java의 여러 줄 문자열은 삼중 따옴표로 정의됩니다. Java에는 사용 가능한 여러 문자열 메서드가 있지만 오늘 이 기사에서는 Java에서 문자열을 뒤집는 다양한 방법에 대해 읽어보겠습니다. Java 프로그래밍 언어는 세계에서 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 단순성과 사용 용이성으로 잘 알려져 있습니다. 프로그래머가 문자열에 대해 수행하는 가장 일반적인 작업 중 하나는 문자열을 뒤집는 것입니다. 이 기사에서는 Java에서 문자열을 뒤집는 다양한 방법에 대해 설명합니다. 먼저 Java에서 for 루프를 사용하는 가장 일반적인 방법에 대해 읽어 보겠습니다.

for 루프를 사용하여 Java에서 문자열을 뒤집습니다.

이 기술은 for 루프를 사용하여 Java에서 문자열을 뒤집는 가장 간단한 방법 중 하나입니다. 문자열의 문자를 끝에서 처음까지 반복하여 새 문자열 변수에 추가할 수 있습니다. 다음은 for 루프를 사용하여 문자열을 뒤집는 방법의 예입니다 .
//in the above code we have reversed the string using a for loop in java
public class reverseofthestring {
  public static void main(String[] args) {

    String s1 = "java is fun";
      // we are creating the second string to store the reversed string and print it while iterating the for loop
    String s2 = "";

    for(int i = s1.length()-1; i>=0; i--)
    {
        // in the above line we have stored the reversed string by iterating the for loop from the last index and stored the value in the second string created s2.
      s2 = s2 + s1.charAt(i);
    }

    System.out.print("The reversed string of the '"+s1+"' is: " );
    System.out.println(s2);
  }
}
산출
The reversed string of the s1 is:nuf si avaj
위 코드에서는 먼저 s1이라는 문자열을 입력받아 빈 문자열 s2를 만든 다음 마지막 인덱스에서 for 루프를 반복한 다음 해당 문자열에 각 문자의 값을 저장했습니다. 더 좋고 명확한 설명을 보려면 편집기에서 위 코드를 실행하세요. 위 코드의 시간 복잡도는 O(N)이고 n개의 요소를 모두 반복했으므로 위 코드의 공간 복잡도는 O(N)입니다. 이제 문자열 작성기를 사용하여 문자열을 뒤집는 다음 프로세스에 대해 읽어 보겠습니다. 이제 이에 대해 자세히 읽어 보겠습니다.

문자열 빌더 클래스를 사용하여 문자열 반전

StringBuilder 클래스를 사용하여 Java에서 문자열을 뒤집을 수도 있습니다. StringBuilder 클래스는 문자열을 반전하는 데 사용할 수 있는 reverse() 메서드를 제공합니다. Java StringBuilder 클래스의 reverse() 메소드는 이 문자 시퀀스를 시퀀스의 역순으로 바꾸는 데 사용됩니다. Java의 StringBuilder 클래스 에는 toCharArray() 메서드가 없지만 String 클래스에는 toCharArray() 메서드가 있습니다. 이제 예를 통해 이해해 보겠습니다.
public class reverseusingbuilder {
    public static void main(String[] args) {
        StringBuilder s1 = new StringBuilder("abc");
        System.out.println("The original string1 is  = " + s1);
        StringBuilder s2 = new StringBuilder("cab");
        System.out.println("The original string2 is = " + s2);
         StringBuilder s3 = new StringBuilder("wer");
        System. out.println("The original string3 is = " + s3);
        // reversing of stringbuilder
        System.out.println("The reverse of the string is reverse1 = " + s1.reverse());
        System.out.println("The reverse of the string2 is reverse2 = " + s2.reverse());
         System.out.println("The reverse of the string3 is reverse2 = " + s3.reverse());
    }
}
산출
The original string1 is  = abc
The original string2 is  =cab
The original string3 is  =wer
The reversed string1 is  = cba
The reversed string2 is  = bac
The reversed string3 is  =rew
이 방법에서는 내장된 문자열 빌더 클래스를 사용하여 문자열을 반대로 한 것을 볼 수 있습니다. 이 방법은 문자열을 한 번만 통과하면 되기 때문에 매우 효율적입니다. 그러나 새로운 StringBuilder 개체를 생성해야 하므로 약간의 오버헤드가 추가될 수 있습니다. 이 방법은 상대적으로 간단하고 이해하기 쉽지만 문자열을 여러 번 통과하고 각 문자에 대해 새 문자열을 생성해야 하므로 다른 방법보다 효율성이 떨어질 수 있습니다. 더 좋고 명확한 설명을 보려면 편집기에서 위 코드를 실행하세요. 이제 재귀 기술을 사용하여 문자열을 뒤집는 또 다른 방법을 살펴보겠습니다.

재귀를 사용하여 문자열 뒤집기

재귀는 함수가 자신을 호출하는 기술입니다. 재귀를 사용하면 문자열을 더 작은 하위 문자열로 분해하여 문자열을 되돌릴 수 있습니다. Java의 재귀는 메소드가 지속적으로 자신을 호출하는 프로세스입니다. 재귀를 사용하여 Java에서 문자열을 뒤집으려면 먼저 문자열에서 첫 번째 문자를 제거한 다음 해당 문자를 문자열 끝에 추가한 다음 입력 문자열이 비어 있을 때까지 위 단계를 반복해야 합니다. 이제 예제를 통해 이를 이해해 보겠습니다.
public class reverse string
{
//in this line we are writing the recursive function to reverse a string
public String reverse string(String s1)
{
//first we will check if the string is empty or not
if(s1.isEmpty())
{
System. out.println("String is empty.")
//if the above condition is true then it returns the same string as if the string is empty itself then we cannot reverse the string
return s1;
}
else
{
return reverseString(s1.substring(1))+s1.charAt(0);
}
}
public static void main(String[] args)
{
reversestring q1 = new reversestring();
String res1 = q1.reverseString("JAVA IS FUN");
String res2 = q1.reverseString("STRINGS OBJECTS JAVA");
String res3 = q1.reverseString("IMMUTABLE CLASS OBJECTS");
System.out.println(res1);
System.out.println(res2);
System.out.println(res3);
}
}
산출
NUF SI AVAJ
AVAJ STCEJBO SGNIRTS
STCEJBO SSALC ELBATUMMI
따라서 위에서 재귀를 사용하여 문자열을 반대로 했다는 것을 알 수 있습니다. 먼저 문자열이 비어 있는지 여부를 확인했습니다. 문자열이 비어 있으면 되돌릴 수 있는 문자가 없게 됩니다. 이 방법은 문자열을 한 번만 통과하면 되므로 for-loop 방법보다 더 효율적일 수 있습니다. 그러나 재귀를 사용하므로 더 복잡하고 이해하기 어려울 수도 있습니다 . 더 좋고 명확한 설명을 보려면 편집기에서 위 코드를 실행하세요. Java에서 재귀를 사용하여 문자열을 뒤집는 방법에 대한 또 다른 예를 살펴보겠습니다.
public static String reverseusingrecursion(String s1) {
    if (s1.length() == 1) {
        return s1;
    }
    //We have applied recursion in this line
    return s1.charAt(s1.length() - 1) + reverseUsingRecursion(s1.substring(0, s1.length() - 1));
}
이제 배열을 사용하는 Java에서 문자열을 뒤집는 또 다른 방법에 대해 읽어 보겠습니다.

배열을 사용하여 Java에서 문자열 반전

또한 문자열을 문자 배열로 변환하고 배열을 변경한 다음 다시 문자열로 변환하여 문자열을 뒤집을 수도 있습니다. 먼저, 주어진 문자열과 같은 크기의 빈 문자 배열을 생성해야 하고, 그런 다음 문자 배열을 주어진 문자열의 문자로 거꾸로 채워야 하고, 마지막으로 다음을 사용하여 문자 배열을 문자열로 변환해야 합니다. 복사 방법을 사용하여 반환합니다. 이제 예제를 통해 이를 이해해 보겠습니다.
public class Main
{
    // In this Method of conversion we have to reverse a string in Java using a character array
    public static String reverse(String s1)
    {
        // we have to check if the string is empty or not and return if the string is null or empty
        if (s1 == null || s1.equals("")) {
            return s1;
        }
 // if it is equal to empty then we will simply print the string and break it.
        // else we will find the string length
        int len = str.length();

        // and then we have to create a character array of the same size as that of the string to store the value after reversing
        char[] new_arr = new char[n];

        // and by iterating the loop backward we have to fill the character array backward with characters in the string
        for (int i = 0; i < len; i++) {
            new_arr[len - i - 1] = str.charAt(i);
        }

        // and in the final step after reversing we have to convert the character array to string and return it
        to return String.copy value of(new_arr);
    }

    public static void main(String[] args)
    {
        // taking a string input for reverse
        String s1 = "JAVA IS FUN";

        // In this line we are calling the reverse function and reversing the string
        str = reverse(str);

        System.out.println("The reversed string is " + s1);
    }
}
산출
NUF SI AVA
이 방법에서는 문자열을 우리가 알고 있는 문자 배열로 바꿔야 하므로 먼저 문자열이 비어 있는지 확인하고 문자열이 null이거나 비어 있으면 반환한 다음 간단히 문자열을 인쇄하고 그렇지 않으면 문자열 길이를 찾은 다음 역순으로 값을 저장하기 위해 문자열과 동일한 크기의 문자 배열을 만들어야 하며 루프를 뒤로 반복하여 문자열의 문자로 문자 배열을 뒤로 채워야 합니다. 반전 후 마지막 단계에서는 문자 배열을 문자열로 변환하고 반환해야 합니다. 더 좋고 명확한 설명을 보려면 편집기에서 위 코드를 실행하세요. 이제 Stream API를 사용하여 Java에서 문자열을 뒤집을 수도 있는 다음 단계에 대해 읽어 보겠습니다. 이제 몇 가지 예를 통해 이에 대해 자세히 읽어보겠습니다.

Stream API를 사용하여 Java에서 문자열을 뒤집습니다.

Java 8에는 컬렉션에 대해 기능적 스타일 작업을 수행하는 데 사용할 수 있는 Stream API가 도입되었습니다. Stream API를 사용하면 문자열을 문자 스트림으로 변환하고, 스트림을 반전한 다음 다시 문자열로 변환하여 문자열을 반전할 수 있습니다. 다양한 스트림과 수집기를 사용하여 Java에서 문자열을 반전시킬 수 있습니다. 먼저 문자열을 입력한 다음 전체 문자열에 대한 Map을 StringBuilder 객체에 사용하고 동시에 StringBuilder 클래스의 reverse() 메서드를 사용하여 반전시켜야 합니다. 그런 다음 마지막으로 Stream을 사용하여 반전된 문자열을 수집합니다. Collect() 메소드 및 수집기. Join() 메서드를 사용하면 원래/역방향 문자열을 길이와 함께 인쇄합니다. 이제 예제를 통해 이를 이해해 보겠습니다.
public static String reverseUsingStream(String str) {
    return str. chars()
              .mapToObj(c -> (char) c)
              .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
              .reverse()
              .toString();
}
이 예에서는 Java 스트림과 수집기를 사용하여 Java의 문자열을 반대로 했습니다. 더 좋고 명확한 설명을 보려면 편집기에서 위 코드를 실행하세요. 이제 스택을 사용하여 문자열을 뒤집는 방법을 살펴보겠습니다. 이제 예제를 통해 자세히 읽어보겠습니다.

스택을 사용하여 문자열 반전

스택을 사용하여 Java에서 문자열을 뒤집는 또 다른 방법이 있습니다. 아이디어는 입력 문자열의 각 문자를 스택에 푸시한 다음 스택에서 문자를 팝하여 반전된 문자열을 얻는 것입니다. 이제 예제를 통해 이에 대해 자세히 읽어보겠습니다.
public static String reverse string(String input) {
    Stack<character> stack = new Stack<>();
    for (int i = 0; i < input.length(); i++) {
        stack.push(input.charAt(i));
    }
    StringBuilder sb = new StringBuilder();
    while (!stack.isEmpty()) {
        sb.append(stack.pop());
    }
    return sb.toString();
}

</character>
위의 예에서는 먼저 빈 스택을 만든 다음 문자열을 뒤집어 스택 안에 요소를 삽입했습니다. 이 방법은 간단하고 이해하기 쉽고 효율적입니다. 더 좋고 명확한 설명을 보려면 편집기에서 위 코드를 실행하세요.

결론

첫 번째 방법은 원래 문자열과 반대인 새 문자열을 반환하는 내장 reverse() 메서드가 있는 StringBuilder 클래스를 사용하는 것입니다. 두 번째 방법은 for 루프를 사용하는 것입니다. 여기서는 원래 문자열을 char 배열로 변환하고 배열을 역순으로 반복하여 해당 문자를 새 char 배열에 할당하고 마지막으로 해당 char 배열을 사용하여 새 문자열을 만듭니다. 세 번째 방법은 재귀 함수를 호출하고 문자열의 첫 번째 문자를 나머지 문자의 역방향 하위 문자열과 연결하여 문제를 해결하는 재귀를 사용하는 것입니다. 네 번째 방법은 배열을 사용하여 Java에서 문자열을 뒤집는 것입니다. 다섯 번째 방법에서는 스트림 API와 Java Collector를 사용하여 문자열을 반전시켰고, 마지막 방법에서는 스택을 사용하여 Java에서 문자열을 반전시켰습니다. 이러한 각 방법에는 장점과 단점이 있으며, 방법 선택은 문제의 특정 요구 사항과 프로그래머의 선호도에 따라 달라집니다. 전반적으로 이러한 방법은 문자열 조작에서 Java의 유연성과 다양성을 보여줍니다.
코멘트
  • 인기
  • 신규
  • 이전
코멘트를 남기려면 로그인 해야 합니다
이 페이지에는 아직 코멘트가 없습니다