BAEL-6435: Reverse a String in Java 8 using Lambda and Streams (#13910)

This commit is contained in:
Azhwani
2023-05-02 08:29:16 +02:00
committed by GitHub
parent 8a2e892c04
commit 04c7b01450
2 changed files with 78 additions and 8 deletions

View File

@@ -1,5 +1,9 @@
package com.baeldung.reverse;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
public class ReverseStringExamples {
@@ -46,11 +50,43 @@ public class ReverseStringExamples {
}
return output.toString()
.trim();
.trim();
}
public static String reverseTheOrderOfWordsUsingApacheCommons(String sentence) {
return StringUtils.reverseDelimited(sentence, ' ');
}
public static String reverseUsingIntStreamRangeMethod(String str) {
if (str == null) {
return null;
}
char[] charArray = str.toCharArray();
return IntStream.range(0, str.length())
.mapToObj(i -> charArray[str.length() - i - 1])
.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
.toString();
}
public static String reverseUsingStreamOfMethod(String str) {
if (str == null) {
return null;
}
return Stream.of(str)
.map(string -> new StringBuilder(string).reverse())
.collect(Collectors.joining());
}
public static String reverseUsingCharsMethod(String str) {
if (str == null) {
return null;
}
return str.chars()
.mapToObj(c -> (char) c)
.reduce("", (a, b) -> b + a, (a2, b2) -> b2 + a2);
}
}