在小写字符串上执行string.tolowercase的性能

vin*_*nay 3 java string performance

我想知道toLowerCase关于String 的含义.这里的字符串长度可以变化到50个字符,也可以是小写字母.

在我们的例子中,我们需要检查用户输入的字符串,然后以小写形式将该输入保存在数据库中,并在大卷上进行检查.

因此,我应该首先检查大小写不匹配,然后String.toLowerCase直接应用OR,始终应用String.toLowerCase()每个字符串,包括小写字符串.

有没有更好的方法来处理这种情况,牢记性能?

提前致谢.

Ste*_*ein 6

在开始构建新字符串之前,Openjdk会在内部检查是否存在任何非小写字符:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java#String.toLowerCase%28java.util.Locale%29

SUN Java以类似的方式工作(请参阅下面的评论),因此您无需进行额外的检查.


您应该能够仔细检查(在一个小的测试程序中)==您的Java版本是否分配了一个新的字符串,即使没有必要:

String test = "all lower case";
if (test == test.toLowerCase()) {
  System.out.println("The strings are the same object, " + 
      "so toLowerCase performs a check before allocating a new one.");
} else {
  System.out.println("A new string object is created even when not needed.");
}
Run Code Online (Sandbox Code Playgroud)