Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package helloworld;
- import static helloworld.HelloWorld.Repeater.repeatIt;
- public class HelloWorld {
- public HelloWorld() {
- Class<?> executingClass = this.getClass();
- Tuple<Integer, String> data = extractMessage(executingClass);
- class SimplePrinter implements Runnable {
- private final String message;
- SimplePrinter(String message) {
- this.message = message;
- }
- @Override
- public void run() {
- System.out.println(message);
- }
- }
- repeatIt(data.first, new SimplePrinter(data.second));
- }
- private Tuple<Integer, String> extractMessage(Class<?> clazz) {
- char[] className = clazz.getSimpleName().toCharArray();
- StringBuilder messageBuilder = new StringBuilder("");
- int splitIndex = 0;
- for (char character : className) {
- if (Character.isUpperCase(character) && className[0] != character) {
- messageBuilder.append(" ");
- splitIndex = clazz.getSimpleName().indexOf(character);
- }
- messageBuilder.append(character);
- }
- return new Tuple<>(splitIndex, messageBuilder.toString());
- }
- public static void main(String[] args) {
- new HelloWorld();
- }
- private class Tuple<X, Y> {
- public final X first;
- public final Y second;
- public Tuple(X x, Y y) {
- this.first = x;
- this.second = y;
- }
- }
- public static class Repeater {
- public static void repeatIt(int times, Runnable action) {
- for (int i = 0; i < times; i++) {
- action.run();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement