Най-лесният начин за обръщане на низ в Java

Обръщането на низ е един от най-често задаваните въпроси в техническо интервю за 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 е използването на рекурсия и използване на 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'));
} }


Обратен низ в Java 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'));
} }