Java-da bir simli çevirməyin ən asan yolu

Bir simli geri çevirmək Java texniki reportajında ​​ən çox verilən suallardan biridir. Müsahibə verənlər bir simli geri qaytarmaq üçün müxtəlif yollar yazmağınızı və ya daxili metodlardan istifadə etmədən bir simli geri çevirməyinizi istəyə bilər və ya təkrarlama istifadə edərək bir simli geri çevirməyinizi istəyə bilərlər.

Aşağıda Java-da bir sətri geri çevirmək üçün istifadə edə biləcəyiniz müxtəlif üsullar verilmişdir.



Java-da Ters String, Asan Yol

Java-da bir sətri geri çevirməyin ən asan yolu daxili reverse() istifadə etməkdir StringBuilder funksiyası sinif.


Misal:

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

Əlaqəli:




Recursion istifadə edərək Stringi tərs çevirin

Java-da bir sətri döndərməyin başqa bir yolu da recursion istifadə etmək və charAt() istifadə etməkdir String üsulu sinif

Misal:

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

Yuxarıda göstərilənlərin bir dəyişməsi toCharArray() istifadə etməkdir və simvolların üstündən keçin, məsələn:

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


Java 8-də tərs simli

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