I wonder whether it is slower to use .charAt() than convert the string variable s to char[] a array and access it via a[i] instead of s.charAt(i) ?
Let's say we are working on problem that has lots of operator on each character within the string.
The implementation of String#charAt(int index) for Oracle's Java 7:
public char charAt(int index) {
if ((index < 0) || (index >= value.length)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}
It's a little safer with the check, but it's the exact same behavior.
It would actually be slower to return the char[]
public char[] toCharArray() {
// Cannot use Arrays.copyOf because of class initialization order issues
char result[] = new char[value.length];
System.arraycopy(value, 0, result, 0, value.length);
return result;
}
since you have to copy it first.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With