В Java, какой бы быстрый способ перебирать все символы в String, это:
String str = "a really, really long string";
for (int i = 0, n = str.length(); i < n; i++) {
char c = str.charAt(i);
}
Или это:
char[] chars = str.toCharArray();
for (int i = 0, n = chars.length; i < n; i++) {
char c = chars[i];
}
EDIT:
То, что я хотел бы знать, заключается в том, что стоимость повторного вызова метода charAt
во время длительной итерации заканчивается либо меньше, либо меньше стоимости выполнения одного вызова toCharArray
в начале и затем непосредственно обращается к массиву во время итерации.
Было бы здорово, если бы кто-то мог предоставить надежный ориентир для разных длин строк, имея в виду время прогрева JIT, время запуска JVM и т.д., а не только разницу между двумя вызовами на System.currentTimeMillis()
.