BAEL-6435: Reverse a String in Java 8 using Lambda and Streams (#13910)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user