首页 > 代码库 > 趣味编程:静夜思(Java8版)

趣味编程:静夜思(Java8版)

import java.util.stream.*;

class KV {
	String ch;
	int id;
}

public class Test {
	private static void print(String text, int offset) {
		IntStream.range(0, text.length())
		.mapToObj(i -> new KV(){{ch = text.substring(i, i + 1); id = i;}})
		.collect(Collectors.groupingBy(kv -> kv.id % offset))
		.forEach((k, kvs) -> System.out.println(
			kvs.stream().map(kv -> kv.ch)
			.reduce((acc, s) -> s + "|" + acc).get()));
	}

	public static void main(String[] args) {
		print("床前明月光疑是地上霜举头望明月低头思故乡", 5);
	}
}

//低|举|疑|床
//头|头|是|前
//思|望|地|明
//故|明|上|月
//乡|月|霜|光