Java charAt()或startsWith()中哪个更快?

时间:2018-09-26 13:51:30

标签: java

我的问题是,如果要检查特定索引中字符串的字符(仅要检查一个字符),哪种方法非常有效charAt()或startsWith()。我的意思是比较时间复杂度我猜想startsWith()比charAt()获得更多的时间。因为startsWith()需要检查一组字符,而charAt()只需要检查一个字符。

现在,请告诉我您的意见...您认为哪种方法可以有效地仅检查一个字符。

2 个答案:

答案 0 :(得分:3)

这两种方法均可用于检查特定字符的值。

charAt()直接返回所请求索引处的char,如果提供相应的参数,则startsWith(prefix,index)将返回true。

主要区别在于第二种方法的开销更多。

因此,从理论上讲,选项1的性能要好一些。但除此之外,您还可以选择选项1,因为它可以最明确的方式满足您的需求。

真正重要的区别不在于性能,而在于代码传达您的意图。因此,尽管可以使用startsWith()来做您想要的事情,但是以这种方式使用它只是违反直觉的。

答案 1 :(得分:1)

如果我要检查特定索引中字符串的一个字符(仅一个字符要检查)

您自己回答。如果您需要检查特定索引中的内容,则不能使用startsWith(),因为您不能选择索引。

他们从事不同的工作,因此,根据您的问题,请始终使用charAt()