StringTokenizer
?将转换String
为char[]
并对其进行迭代?还有别的吗
我使用for循环来迭代字符串,并使用它charAt()
来获取每个字符以进行检查。由于String是通过数组实现的,因此该charAt()
方法是恒定时间操作。
String s = "...stuff...";
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i);
//Process char
}
那就是我会做的。在我看来,这是最简单的。
就正确性而言,我不认为这是存在的。这一切都取决于你的个人风格。
编译器是否内联length()方法?
它可能是内联的length(),这可以提升后面调用几帧的方法,但是对于以下情况,这样做更有效:int = 0,n = s.length(); i <n; i ++){char c = s.charAt(i); }
使代码杂乱无章,以获得微不足道的性能提升。请避免这种情况,直到您确定此代码区域对速度至关重要。
请注意,此技术为您提供字符,而不是代码点,这意味着您可能会获得替代。
@ikh charAt不是O(1):怎么回事?的代码
String.charAt(int)
只是在做value[index]
。我认为您会混淆chatAt()
其他一些可以给您代码点的东西。