Obrtanje niza jedno je od najčešće postavljanih pitanja u Java tehničkom intervjuu. Ispitivači mogu tražiti da napišete različite načine za preokretanje niza, ili mogu tražiti da preokrenete niz bez korištenja ugrađenih metoda, ili čak mogu zatražiti da obrnete niz pomoću rekurzije.
Ispod su razne metode koje možete koristiti za preokretanje niza u Javi.
Najlakši način za preokret niza u Javi je korištenje ugrađenog reverse()
funkcija StringBuilder
razred.
Primjer:
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'));
} }
Povezano:
Drugi način za preokret niza u javi je korištenje rekurzije i korištenje charAt()
metoda String
razred
Primjer:
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'));
} }
Varijacija gore navedenog je upotreba toCharArray()
i petljajte po znakovima, na primjer:
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'));
} }