如何解决Java 如何将 String 转换为 Iterable<Character>
我有一个存储字符串类型数据的类,可以根据字符串的长度( compareto() )进行比较,通过字符( iterator() )进行迭代。
我已经实现了 compareto
方法,但我不知道如何实现 iterator()
public class ExtendedString implements Comparable<ExtendedString>,Iterable<Character>{
private String str;
public ExtendedString(String str) {
this.str = str;
}
public int compareto(ExtendedString estr) {...}
public Iterator<Character> iterator() {
???
}
}
我的问题是我应该如何实现 iterator()
?
解决方法
- 要将
String
转换为Character[]
,我们可以按照this answer - 使用
Arrays#stream
方法将Character[]
转换为Stream<Character>
,然后使用BaseStream#iterator
。
@Override
public Iterator<Character> iterator() {
return Arrays.stream(str.chars().mapToObj(c -> (char) c).toArray(Character[]::new)).iterator();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。