字符串的字符串IntStream – Java
是否可以将字符串str.chars()
的流转换为使用字符串流,其中每个字符串包含5个字符,例如?
我不认为尝试组合字符中的元素非常适合Java流而不使用某些第三方库。
如果你想要一个包含5个字符子串的流,我会将它们拆分为:
String s = "1234567890123456789012345678901234567890"; IntStream.range(0, s.length()/5) .mapToObj(i -> s.substring(i*5, (i+1)*5)) .forEach(System.out::println);
您可以使用简单地将字符串拆分为五个字符大小的字符串
String[] split = string.split("(?<=\\G.{5})");
如果必须使用流,您可以使用,例如
Pattern.compile("(?<=\\G.{5})").splitAsStream(string).forEach(System.out::println);
是的,如果使用有状态的lambda表达式是可能的,但它被认为是一种不好的做法 。
一个人应该能够串行或并行处理流。 元素处理的顺序可能不同,但两者都应导致相同的结果,这只能通过无状态表达式实现。