public class StringEmptyCompare {
String s = "";
//循環一億次,比較效率
long n = 100000000;
//方法1
private void function1() {
//存下起始時間
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (s == null || s.equals("")) ;
}
//存下結束時間
long endTime = System.currentTimeMillis();
System.out.println("方法1用時:" + (endTime - startTime) + "ms");
}
//方法2
private void function2() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (s == null || s.length() < 1) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法2用時:" + (endTime - startTime) + "ms");
}
//方法3
private void function3() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (s == null || s.isEmpty()) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法3用時:" + (endTime - startTime) + "ms");
}
//方法4
private void function4() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (StringUtils.isBlank(s)) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法4-StringUtils.isBlank用時:" + (endTime - startTime) + "ms");
}
//方法4
private void function5() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (StringUtils.isEmpty(s)) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法5-StringUtils.isEmpty用時:" + (endTime - startTime) + "ms");
}
public static void main(String[] args) {
StringEmptyCompare sec = new StringEmptyCompare();
sec.function1();
sec.function2();
sec.function3();
sec.function4();
sec.function5();
}
}
結果:
方法1用時:1156ms
方法2用時:563ms
方法3用時:671ms
方法4-StringUtils.isBlank用時:1344ms
方法5-StringUtils.isEmpty用時:719ms
可以看出,方法2效率最高;方法3與方法2效率上相差不大;方法4效率最低。