Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        4年前关闭。
                                                                                            
                
        
我正在优化使用equalsIgnoreCase的一段代码,它可以处理数百万条记录。请任何人给我一些见解,在Java中equalsIgnoreCaseregionMatches中的哪一个是更快,更有效的。

最佳答案

如果检查equalsIgnoreCase的实现,则仅依赖regionMatches

public boolean equalsIgnoreCase(String anotherString) {
    return (this == anotherString) ? true
            : (anotherString != null)
            && (anotherString.value.length == value.length)
            && regionMatches(true, 0, anotherString, 0, value.length);
}


因此,如果您不需要检查两个字符串的长度,那么您肯定知道它们没有引用相同的内存地址,并且第二个字符串永远不会为空,因此regionMatches的性能会稍好一些,因为您避免检查数百万次。但是,现实中,您总是需要检查一下,因此请坚持使用equalsIgnoreCase。即使您拥有数百万个字符串,差异也很小,无法察觉。

10-08 11:27