一种选择是使用番石榴:
ImmutableList<Character> chars = Lists.charactersOf(someString);UnmodifiableListIterator<Character> iter = chars.listIterator();
这将产生不可变的字符列表,该列表由给定的字符串支持(不涉及复制)。
但是,如果最终自己做,那么我建议不要
Iterator像其他许多示例那样公开实现类。我建议改为制作自己的实用程序类并公开静态工厂方法:
public static Iterator<Character> stringIterator(final String string) { // Ensure the error is found as soon as possible. if (string == null) throw new NullPointerException(); return new Iterator<Character>() { private int index = 0; public boolean hasNext() { return index < string.length(); } public Character next() { if (!hasNext()) throw new NoSuchElementException(); return string.charAt(index++); } public void remove() { throw new UnsupportedOperationException(); } };}


