Le moyen le plus simple d'inverser une chaîne en Java

L'inversion d'une chaîne est l'une des questions les plus fréquemment posées lors d'un entretien technique Java. Les enquêteurs peuvent vous demander d'écrire différentes manières d'inverser une chaîne, ou ils peuvent vous demander d'inverser une chaîne sans utiliser de méthodes intégrées, ou ils peuvent même vous demander d'inverser une chaîne en utilisant la récursivité.

Vous trouverez ci-dessous différentes méthodes que vous pouvez utiliser pour inverser une chaîne en Java.



Inverser la chaîne en Java, le moyen le plus simple

Le moyen le plus simple d'inverser une chaîne en Java est d'utiliser la fonction intégrée reverse() fonction de la StringBuilder classer.


Exemple:

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

En rapport:




Inverser la chaîne à l'aide de la récursivité

Une autre façon d'inverser une chaîne en java est d'utiliser la récursivité et d'utiliser le charAt() méthode du String classer

Exemple:

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

Une variante de ce qui précède consiste à utiliser le toCharArray() et faites une boucle sur les caractères, par exemple:

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


Inverser la chaîne dans 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'));
} }