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

관련 :




재귀를 사용하여 문자열 반전

자바에서 문자열을 뒤집는 또 다른 방법은 재귀를 사용하고 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'));
} }