我想遍历一个字符串的每一个字符,以前是用string.toCharArray()来转换成一个char[]一个一个看的
不过我看到有些,特别是lucene的分词器,他们都是用的stringreader来遍历一个字符串的
是不是stringreader要比string.toCharArray()换成的char[]要来的快?
我想遍历一个字符串的每一个字符,以前是用string.toCharArray()来转换成一个char[]一个一个看的
不过我看到有些,特别是lucene的分词器,他们都是用的stringreader来遍历一个字符串的
是不是stringreader要比string.toCharArray()换成的char[]要来的快?
[color=blue]应该是string.toCharArray()速度快吧。我的理由如下:[/color]
[b]看StringReader的read方法的JDK源码:[/b]
[code="java"]
public int read() throws IOException {
synchronized (lock) {
ensureOpen();
if (next >= length)
return -1;
return str.charAt(next++);
}
}
[/code]
[color=blue]可以看到,在读取一个字符时,用到的是String的字符索引方法。与toCharArray之后的遍历相比,其操作比较繁琐。
因此我认为String的toCharArray之后,再遍历数组,速度比较快![/color]