当前位置: 首页 > 面试题库 >

Java:如何获取Iterator 从字符串

松嘉颖
2023-03-14
问题内容

我需要Iterator<Character>一个String物体。Java中是否有可用的功能可以提供此功能,或者我必须自己编写代码?


问题答案:

一种选择是使用番石榴:

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() {
      /*
       * Throw NoSuchElementException as defined by the Iterator contract,
       * not IndexOutOfBoundsException.
       */
      if (!hasNext())
        throw new NoSuchElementException();
      return string.charAt(index++);
    }

    public void remove() {
      throw new UnsupportedOperationException();
    }
  };
}


 类似资料:
  • 我有两根绳子 在两种情况下,我应该删除

  • 问题内容: 我不知道如何从字符串中获取Unicode字符。例如,如果字符串是“你好”,我如何获得第一个字符“你”? 从另一个地方我得到一种方法: 确实有效。但是我仍然有一些问题: 还有另一种方法吗? 为什么在Go中不能从字符串中获取Unicode字符,却可以获取字节数据? 问题答案: 首先,您可能需要阅读https://blog.golang.org/strings 。它将回答您的部分问题。 Go

  • 问题内容: 如何使用php从字符串中获取前5个字符 结果应该是这样的 问题答案: 对于单字节字符串(例如US-ASCII,ISO8859系列等),请使用;对于多字节字符串(例如UTF-8,UTF-16等),请使用:

  • 问题内容: 我有一个字符串(基本上是遵循命名约定的文件名) 我想在第一个(即一个点)之前提取子字符串 在java doc api中,我似乎找不到在String中执行此操作的方法。 我想念什么吗?怎么做? 问题答案: 看看和。 确保检查的-1 。

  • 问题内容: 我有一个方法: 当运行时,我得到如下输出: 现在我该怎样提取实际字符串值入, 使用反射? 问题答案: 看起来您需要引用该类的实例。您可能要调用get和pass的引用,将返回值转换为String。 您可以使用get,如下所示:

  • 问题内容: 我得到的输出为 控制器中的日期Mon Dec 31 IST 2012 请提出一种以格式输出日期的方法。需要以日期格式而不是字符串形式输出,以便将输出存储在mysql db的字段中 问题答案: 声明后 您有一个对象, 可以将其按原样存储在mysql DB中 (列类型:datetime)。 但是,在打印时,它默认为实现。我认为您希望获得类似Date @的输出,但是toString以用户可读