【发布时间】:2012-04-08 17:32:19
【问题描述】:
我有一个最多包含 100000 个字符的大字符串。我没有使用string.charAt[index] 从字符串中读取字符,而是使用string.toCharArray() 方法将该字符串转换为char 数组,现在我正在使用charArray[index]。这比string.charAt[index] 方法花费的时间更少。不过我想知道,有没有比string.toCharArray(); 方法更快的方法?
【问题讨论】:
-
您如何确定
string.charAt(index)较慢?我不认为它会更慢。 -
为了您的方便,也许我可以建议使用StringReader
-
我注意到
System.getTimeinMills()和string.charAt(index)也使用数组索引。最好有一个数组。 -
@Ravi Joshi: "使用 string.charAt[index] 从字符串中读取一个字符"...字符串的 charAt 确实 not 从字符串中读取一个字符。它读取一个 Java char,它完全不足以容纳所有的 Unicode 字符。从 Java 1.4 开始,一个字符可能需要多个 Java char 才能使用 char 来表示。例如,像 Stackoverflow 这样的网站完全支持 Unicode 和所有 Unicode 代码点。 Java 的 char 原语没有。
-
@TacticalCoder:感谢您提供此信息。我不知道这个事实。但是在我的情况下,字符串仅由小写字母组成,即 a-z。