Auðveldasta leiðin til að snúa við streng í Java

Að snúa við streng er ein algengasta spurningin í Java tæknilegu viðtali. Viðmælendurnir geta beðið þig um að skrifa mismunandi leiðir til að snúa strengi við, eða þeir geta beðið þig um að snúa strengnum við án þess að nota innbyggðar aðferðir, eða þeir jafnvel beðið þig um að snúa strengnum við með endurskoðun.

Hér að neðan eru ýmsar aðferðir sem þú getur notað til að snúa við streng í Java.

Öfug strengur í Java, auðveldasta leiðin

Auðveldasta leiðin til að snúa við streng í Java er að nota innbyggða reverse() virkni StringBuilder bekk.

Dæmi:

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

Tengt:

Andstæða strengur með Recursion

Önnur leið til að snúa við streng í java er að nota endurkvöðnun og nota charAt() aðferð við String bekk



Dæmi:

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

Afbrigði af ofangreindu er að nota toCharArray() og lykkjaðu yfir persónurnar, til dæmis:

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

Andstæða streng í Java 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'));
} }