使用与迭代器和String函数的连接

ajb*_*ajb 2 java java-8

假设我有一个Iterator<Class1>对象. Class1提供了一个stringFunction()返回a 的方法String.

有没有办法以String.join一种方式调用迭代器返回的stringFunction()每一个Class1,并连接由分隔符分隔的函数结果?

有一个String.join过载,需要一个Iterable<CharSequence>; 是否可以从Iterator<Class1>和创建一个stringFunction,以便join可以使用它?

Psh*_*emo 6

如何使用

  • streamOfCharSequence.collect(Collectors.joining(delimiter))

而不是String.join(delimiter, Iterable<CharSequence>.

你可以尝试类似的东西

String result = StreamSupport
        .stream(Spliterators.spliteratorUnknownSize(iterator,
                Spliterator.ORDERED), false)
        .map(e -> e.stringFunction()).collect(Collectors.joining(", "));
Run Code Online (Sandbox Code Playgroud)