Ipni teskari yo'naltirish - bu Java texnik intervyusida eng ko'p beriladigan savollardan biri. Suhbatdoshlar sizdan satrni teskari yo'naltirishning turli xil usullarini yozishingizni yoki ichki uslublardan foydalanmasdan satrni teskari aylantirishingizni so'rashi mumkin, yoki hatto rekursiya yordamida satrni teskari aylantirishingizni so'rashlari mumkin.
Quyida Java-da mag'lubiyatni teskari yo'naltirish uchun foydalanishingiz mumkin bo'lgan turli xil usullar mavjud.
Java-da mag'lubiyatni teskari yo'naltirishning eng oson usuli - o'rnatilgan reverse()
StringBuilder
funktsiyasi sinf.
Misol:
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'));
} }
Bog'liq:
Java-da mag'lubiyatni teskari yo'naltirishning yana bir usuli - bu rekursiyadan foydalanish va charAt()
dan foydalanish String
usuli sinf
Misol:
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'));
} }
Yuqoridagilarning o'zgarishi toCharArray()
dan foydalanish va belgilar ustidan pastadir, masalan:
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'));
} }