Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 문자열을 뒤집는 가장 쉬운 방법

문자열 반전은 자바 기술 인터뷰에서 가장 자주 묻는 질문 중 하나입니다. 면접관은 문자열을 뒤집는 다양한 방법을 작성하도록 요청하거나 내장된 메서드를 사용하지 않고 문자열을 뒤집을 것을 요청할 수 있습니다. 또는 재귀를 사용하여 문자열을 뒤집을 수도 있습니다.

다음은 Java에서 문자열을 반전하는 데 사용할 수 있는 다양한 방법입니다.

자바의 역 문자열, 가장 쉬운 방법

Java에서 문자열을 뒤집는 가장 쉬운 방법은 내장된 reverse()를 사용하는 것입니다. StringBuilder의 기능 수업.

예:

package io.devqa.tutorials;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        return new StringBuilder(inputString).reverse().toString();
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

관련:

  • Java에서 toString()을 재정의하는 이유
  • 자바에서 문자열을 비교하는 방법
  • 문자열에서 숫자를 추출하는 방법
  • Java에서 String을 Int로 변환하는 방법

재귀를 사용한 역 문자열

자바에서 문자열을 뒤집는 또 다른 방법은 재귀를 사용하고 charAt() String의 메소드 수업

예:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {

        StringBuilder reverseStringBuilder = new StringBuilder();

        for(int i = inputString.length() - 1; i>=0; i--){
            reverseStringBuilder.append(inputString.charAt(i));
        }

        return reverseStringBuilder.toString();
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

위의 변형은 toCharArray()를 사용하는 것입니다. 다음과 같이 문자를 반복합니다.

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        String outString = "";
        for(char c : inputString.toCharArray()) {
            outString = c + outString;
        }
        return outString;
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

자바 8의 역 문자열

import org.junit.jupiter.api.Test;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        return IntStream.range(0, inputString.length())
            .mapToObj(x-> inputString.charAt((inputString.length()-1) - x))
            .map(character -> String.valueOf(character))
            .collect(Collectors.joining(""));
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}