isPrime
void main() {}
boolean isPrime(int n) {
return n > 1 &&
IntStream.range(2, n).noneMatch(x -> n % x == 0);
}
IntStream twinPrimes(int a, int b) {
return IntStream.rangeClosed(a,b)
.filter(x -> isPrime(x))
.filter(x -> isPrime(x-2) && x-2>=a || isPrime(x+2) && x+2<=b);
}
jshell> twinPrimes(1, 100).toArray()
$.. ==> int[15] { 3, 5, 7, 11, 13, 17, 19, 29, 31, 41, 43, 59, 61, 71, 73 }
jshell> twinPrimes(1, 100).count()
$.. ==> 15
countRepeats
int countRepeats(List list) {
return (int) IntStream.range(0, list.size() - 1)
.filter(i -> list.get(i).equals(list.get(i + 1)) &&
(i == 0 || !list.get(i).equals(list.get(i - 1))))
.count();
}
jshell> countRepeats(List.of(0, 1, 2, 2, 1, 2, 2, 1, 3, 3, 1))
$.. ==> 3
reverseString
String reverse(String str) {
int len = str.length();
return IntStream.iterate(len - 1, i -> i >= 0, i -> i - 1)
.mapToObj(i -> str.substring(i, i + 1))
.reduce("", (acc, s) -> acc + s);
}
jshell> reverse("one two three")
$.. ==> "eerht owt eno"