Najlakši način za preokret niza u Javi

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.



Obrnuti niz u Javi, najlakši način

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:




Obrni niz pomoću rekurzije

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


Obrnuti niz u Javi 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'));
} }