在android 的开发中经常会使用判断字符串是否为空,虽然现在智能手机的运行速度越来越高,但为了使应用更加的流畅,我们应该保证 在编写程序时使用较好的方法来提高效率。一下为四种方法的运行时间的比较:

  

public class TestEmptyString {   String  s   = "";   long    n   = 10000000;   private void function1() {   long startTime = System.currentTimeMillis();   for (long i = 0; i < n; i++) {   if (s == null || s.equals(""))   ;   }   long endTime = System.currentTimeMillis();   System.out.println("function 1 use time: " + (endTime - startTime)   + "ms");   }   private void function2() {   long startTime = System.currentTimeMillis();   for (long i = 0; i < n; i++) {   if (s == null || s.length() <= 0)   ;   }   long endTime = System.currentTimeMillis();   System.out.println("function 2 use time: " + (endTime - startTime)   + "ms");   }   private void function3() {   long startTime = System.currentTimeMillis();   for (long i = 0; i < n; i++) {   if (s == null || s.isEmpty())   ;   }   long endTime = System.currentTimeMillis();   System.out.println("function 3 use time: " + (endTime - startTime)   + "ms");   }   private void function4() {   long startTime = System.currentTimeMillis();   for (long i = 0; i < n; i++) {   if (s == null || s == "")   ;   }   long endTime = System.currentTimeMillis();   System.out.println("function 4 use time: " + (endTime - startTime)   + "ms");   }   public static void main(String[] args) {   TestEmptyString test = new TestEmptyString();   test.function1();   test.function2();   test.function3();   test.function4();   }

  方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.

  方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法.

  方法三:JavaSE 6.0 才开始提供的办法, 效率和方法二基本上相等, 但出于兼容性考虑, 推荐使用方法二或方法四.

  方法四: 这是种最直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多

  以下代码在我机器上的运行结果: (机器性能不一, 仅供参考)

  function 1 use time: 140ms

  function 2 use time: 47ms

  function 3 use time: 47ms

  function 4 use time: 47ms



  注意:s == null 是有必要存在的.

  如果 String 类型为 null, 而去进行 equals(String) 或 length() 等操作会抛出java.lang.NullPointerException.

  并且s==null 的顺序必须出现在前面.不然同样会抛出java.lang.NullPointerException.

  如下代码:

  Java代码

  String str= = null;

  if(str=.equals("") || str= == null){//会抛出异常

  System.out.println("success");

  }

  // "".equales(str);后置确保不会遇null报错。



http://java.chinaitlab.com/base/841779.html

更多相关文章

  1. Android键盘系统相关代码分析(1)
  2. 使用线程执行堆栈StackTraceElement设计Android日志模块
  3. android APP字体大小,不随系统的字体大小变化而变化的方法
  4. Android实现判断手机未接来电及处理方法
  5. Android(安卓)Studio1.5+混合调试Native代码(C/C++)和Java代码
  6. android中webview接收favicon总是获取为null解决方案
  7. [小代码]通过IP和端口连接到远程摄像机
  8. Android(安卓)编译时注解 —— 语法详解
  9. flutter中实现仿Android端的onResume和onPause方法

随机推荐

  1. Flask_FileUpload
  2. 详谈pg逻辑复制系列之逻辑复制适用场景及
  3. 图解垃圾算法,No,捡垃圾算法
  4. 如何在Mac上更新Chrome?
  5. 我们不一样!运维自动化典型案例观止
  6. Redis6 终于还是迎来了多线程版本!
  7. 我不配有五一
  8. 喂,业余草吗?你的生死簿管理系统我出10万买
  9. 基于 Python 的企业级运维平台开发实战!
  10. 又一个程序员“倒”下,Pandownload作者被