Omkeer van 'n string is een van die vrae wat die meeste in 'n Java-tegniese onderhoud gevraag word. Die onderhoudvoerders kan u vra om verskillende maniere te skryf om 'n snaar om te keer, of hulle kan u vra om 'n snaar om te keer sonder om ingeboude metodes te gebruik, of hulle kan selfs vra dat u 'n snaar moet omkeer met behulp van rekursie.
Hieronder is verskillende metodes wat u kan gebruik om 'n string in Java om te keer.
Die maklikste manier om 'n string in Java om te keer, is om die ingeboude reverse()
te gebruik funksie van die StringBuilder
klas.
Voorbeeld:
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'));
} }
Verwante:
'N Ander manier om 'n string in Java om te keer, is om rekursie te gebruik en die charAt()
te gebruik metode van die String
klas
Voorbeeld:
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'));
} }
'N Variasie van bogenoemde is om die toCharArray()
te gebruik en loop oor die karakters, byvoorbeeld:
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'));
} }
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'));
} }