49 lines
1022 B
Java
49 lines
1022 B
Java
package nth;
|
|
|
|
import java.util.stream.IntStream;
|
|
import java.util.stream.Stream;
|
|
|
|
public interface Nth {
|
|
public static String suffix(int n){
|
|
if(n % 100 / 10 == 1){
|
|
return "th"; //teens are all "th"
|
|
}
|
|
switch(n % 10){
|
|
case 1: return "st";
|
|
case 2: return "nd";
|
|
case 3: return "rd";
|
|
default: return "th"; //most of the time it should be "th"
|
|
}
|
|
}
|
|
|
|
public static void print(int start, int end) {
|
|
IntStream.rangeClosed(start, end)
|
|
.parallel()
|
|
.mapToObj(i -> i + suffix(i) + " ")
|
|
.reduce(String::concat)
|
|
.ifPresent(System.out::println)
|
|
;
|
|
}
|
|
|
|
public static void print(int[] startAndEnd) {
|
|
print(startAndEnd[0], startAndEnd[1]);
|
|
}
|
|
|
|
public static int[] startAndEnd(int start, int end) {
|
|
return new int[] {
|
|
start,
|
|
end
|
|
};
|
|
}
|
|
|
|
public static void main(String... arguments){
|
|
Stream.of(
|
|
startAndEnd(0, 25),
|
|
startAndEnd(250, 265),
|
|
startAndEnd(1000, 1025)
|
|
)
|
|
.forEach(Nth::print)
|
|
;
|
|
}
|
|
}
|