`

java判断字符串为空的5种方法及其效率

 
阅读更多
import org.apache.commons.lang.StringUtils;
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效率最低。
分享到:
评论
1 楼 冬天秋天 2013-07-22  
注释中第二个“方法四”你应当改成“方法五”。

相关推荐

    从文本文件中查找字符串

    在大量文件中查找字符串时,效率就显得尤为重要。这就需要用到命令行工具,如在Windows中的`findstr`命令,Linux或Unix环境下的`grep`命令。这些命令行工具可以遍历指定目录下的所有文件,查找包含特定字符串的文件...

    计算机科学中回文字符串判定算法的多种实现及优化

    使用场景及目标:帮助开发者理解和掌握各种判断回文字符串的方法及其应用场景,提高代码实现效率。特别是在处理文本数据时,能够选用最合适的方法来优化性能。 其他说明:建议结合具体的应用场景选择合适的判断方法...

    java参考题

    7. **判断字符串** - `isEmpty()`:检查字符串是否为空。 - `contains(String str)`:检查字符串是否包含另一个子串。 8. **大小写转换** - `toLowerCase()` 和 `toUpperCase()`:将字符串转换为全小写或全大写...

    java方法大全

    **功能描述**:此方法用于将一个`java.util.Date`对象按照指定格式转化为字符串。 **参数说明**: - `date`:需要被转换的日期对象。 - 返回值:按照“yyyy-MM-dd HH:mm:ss”格式化的日期字符串。 **代码实现**: ...

    Java软件开发实战 Java基础与案例开发详解 9-1 常用类介绍 共15页.pdf

    - `startsWith(String prefix)`、`endsWith(String suffix)`:判断字符串是否以特定的前缀或后缀开始或结束。 - `regionMatches(boolean ignoreCase, int thisStart, String other, int start, int length)`:比较两...

    java代码-编写一个程序判断字符串“Tom”是否在另一个字符串“I am Tom, I am from China”中出现

    2. 使用`contains()`方法判断字符串是否包含子串。 3. 基本的条件判断和控制流。 4. 对代码进行封装,提高可重用性。 在实际开发中,理解和掌握这些基本概念是非常重要的,因为它们构成了许多复杂功能的基础。通过...

    上海交通银行JAVA笔试编程题

    Java程序中,字符串默认使用UTF-16编码,这是Unicode的一种实现,可以确保正确处理各种语言,包括中文。理解字符编码是解决字符乱码问题的关键。在读写文件或网络通信时,我们需要确保编码和解码的格式一致,否则...

    Java基础学习09.pdf

    如字符串连接(concat方法或者使用+操作符)、字符访问(charAt)、比较(compareTo和compareToIgnoreCase)、查找(indexOf和lastIndexOf)、截取(substring)、替换(replace)、格式化(format)、大小写转换...

    常用工具类方法1

    - `isBlank`: 判断字符串是否为空,包括null和trim后的空格,如果为空则返回true。 - `isNotBlank`: 判断字符串是否非空,不包括null和trim后的空格,如果非空则返回true。 - `isEmpty`: 不考虑trim,直接检查...

    一种改进的加密JAVA源码的方法.pdf

    - 将类名转换为C字符串格式。 - 调用defineClass()方法创建新类。 3. **附加加密**:为了进一步提高安全性,可以对已加密的文件添加额外的加密层。例如,在每个已加密的class文件末尾添加一个字节,然后在本地...

    string类的常用方法.pdf

    5. **`equals(Object obj)`**:判断字符串是否与指定对象相等。 - 示例:`str.equals("Hello");` 6. **`equalsIgnoreCase(String anotherString)`**:忽略大小写判断字符串是否与指定字符串相等。 - 示例:`str....

    Java程序员面试宝典

    ### Java程序员面试宝典知识点概览 #### 一、基础部分 **1. Java程序的入口** - **知识点:** Java程序必须有一个主类包含`main`方法作为...而字符串的`length()`方法则是一个实例方法,用于获取字符串中字符的数量...

    Java计算校验和源码

    1. **空值检查**:首先判断传入的字符串是否为`null`或空字符串。如果是,则直接返回空字符串。 ```java if (data == null || "".equals(data)) { return ""; } ``` 2. **初始化变量**: - `total`:用于...

    java集合习题及答案

    - 使用`contains`方法判断子字符串`s`是否存在于字符串`str`中。 - 如果存在,通过`indexOf`找到`s`首次出现的位置,并使用`substring`方法去除已匹配的部分,然后继续循环查找。 - 每次找到子字符串,计数器`...

    java开发中常用的通用工具类.rar

    - `StringUtils`:提供了一系列处理字符串的方法,如`isEmpty()`判断字符串是否为空,`join()`将对象数组合并成字符串等。 - `ArrayUtils`:提供了数组相关的操作,如`add()`向数组末尾添加元素,`isEmpty()`检查...

    数据结构与算法java进阶(百度T5推荐)

    - Java中字符串(String)是一个不可变的对象,可以使用String类的各种方法进行字符串操作,如concat()、equals()、substring()等。 - **1.1.4 数组** - 数组是一种基本的数据结构,用于存储相同类型的元素。Java...

    Java 9 api 中文版 JDK9 中文版

    8. **更好的字符串处理**:`String`类增加了新的API,如`lines()`用于按行分割字符串,`strip()`和`stripIndent()`用于去除两端空白,以及`isBlank()`判断字符串是否为空或仅含空白。 9. **文件读写增强**:`Path`...

    Java经典编程源码基础例程300.zip

    Java经典编程源码例程,可以做为你的学习设计参考。 第1章 Java语言概述 1 实例001 输出“Hello World” 2 实例002 输出控制台传递的参数 2 实例003 输出由“*”组成的三角形 3 实例004 输出符号表情 5 第2章 ...

    JAVA面试题,Java是一种面向对象的编程语言,由Sun Microsystems公司(现属Oracle公司)于1995年推出

    Object类是所有Java类的基类,包含了一些通用的方法,如toString()用于返回对象的字符串表示,equals()用于比较两个对象是否相等,以及hashCode()用于生成对象的哈希值,这对于数据结构如HashMap的高效操作至关重要...

Global site tag (gtag.js) - Google Analytics