`
for_dream
  • 浏览: 567937 次
社区版块
存档分类
最新评论

Java中判断String不为空

 
阅读更多

Java中判断String不为空的问题

 一、判断一个字符串str不为空的方法有:

  1. str!=null;

  2. "".equals(str);

  3. str.length()!=0;

 

( 注意:length是属性,一般集合类对象拥有的属性,取得集合的大小。

            例如:数组.length就是取得数组的长度。
        length()是方法,一般字符串类对象有该方法,也是取得字符串长度。
            例如:字符串.length();

 )

 

说明:

  1. null表示这个字符串不指向任何的东西,如果这时候你调用它的方法,那么就会出现空指针异常。

  2.""表示它指向一个长度为0的字符串,这时候调用它的方法是安全的。
  3. null不是对象,""是对象,所以null没有分配空间,""分配了空间,例如:

    String str1 = null; str引用为空
    String str2 = ""; str应用一个空串

    str1还不是一个实例化的对象,儿str2已经实例化。

    对象用equals比较,null用等号比较。

    如果str1=null;下面的写法错误:
       if(str1.equals("")||str1==null){ } 
   正确的写法是 if(str1==null||str1.equals("")){ //先判断是不是对象,如果是,再判断是不是空字符串 }

 

  4. 所以,判断一个字符串是否为空,首先就要确保他不是null,然后再判断他的长度。
     String str = xxx;
     if(str != null && str.length() != 0) { }

 

 

 

二、 Java 判断字符串是否为空的三种方法的效率

    (转自网上)

 function 1: 最多人使用的一个方法, 直观, 方便, 但效率很低.
 function 2: 比较字符串长度, 效率高, 是我知道的最好一个方法.
 function 3: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 不推荐使用

   以下是三种方法在机器上的运行结果: (机器性能不一, 仅供参考)
 function 1 use time: 141ms
 function 2 use time: 46ms
 function 3 use time: 47ms

 

三种方法的代码如下:

  方法一:

  

public void function1(String s,int n) {
  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");
 }

 

 方法二:

  

public void function2(String str,int n) {
  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");
 }

 

方法三:

  

public void function3(String str , int n) {
  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");
 
}

 

 

 

 

 

分享到:
评论
1 楼 zhufang1020 2016-01-06  
"".equals(str); 这个是判断字符串str是空

相关推荐

    Java中String判断值为null或空及地址是否相等的问题

    主要介绍了Java中String判断值为null或空及地址是否相等的问题,文中举了简单的例子对字符串类型的值和地址问题进行讲解,需要的朋友可以参考下

    java判断字符串String是否为空问题浅析

    主要介绍了java判断字符串String是否为空问题,有需要的朋友可以参考一下

    java 对象是否为空的判断

    java 判断对象是否为空.如String,Character,Object[]

    StringUtil.java

    java编程中对字符串的各种方式的处理,包括(空字符串处理、判断是否是空字符串 null和"" 都返回 true、 把string array or list用给定的符号symbol连接成一个字符串、 判定第一个字符串是否等于的第二个字符串中的某...

    Java中StringUtils工具类进行String为空的判断解析

    主要介绍了Java中StringUtils工具类进行String为空的判断解析,具有一定借鉴价值,需要的朋友可以参考下

    java判断参数是否为空工具类 java判断对象属性是否全部为空

    java判空工具类 可以判断字符串数组,字符串类型,List对象集合,Map集合map&lt;String,object&gt;,map和多个String参数,对象类型...java判断对象属性是否全部为空,只要有一个属性不为空,那么就不是所有的属性值都为空。

    StringAPI.java

    Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, ...

    LocalDateTimeUtil.java

    import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; public class LocalDateTimeUtil { /** * 比较 localDateTime2 是否在...

    android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现

    android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现

    EmptyUtils.java

    EmptyUtils.java---Java验证对象是否为空的工具类,工具可判断List,String,Integer,Object,Object[]类型的对象是否为空。

    java各种工具类:精确的数学运算、将String进行base64编码解码、树的递归、判断是否为空等

    java各种工具类:精确的数学运算、将String进行base64编码解码、树的递归等 包含:ArithmeticUtils、Base64Util、BitConverterUtil、BuildTreeFor1077、CaculateDistanceUtil、CloseUtil、ConvertUtil、...

    java中optional妙用解决NullPointerException

    orElse(T other): 如果optional不为空,则返回optional中的对象;如果为null,则返回 other 这个默认值 orElseGet(Supplier other): 如果optional不为空,则返回optional中的对象;如果为null,则使用Supplier...

    DateUtil.java

    DateUtil.java string与date互转,long与date互转 DateUtil.java string与date互转,long与date互转 DateUtil.java string与date互转,long与date互转

    北邮java作业

    4. 判断是否为空 5.根据位置返回学生 6.根据学号返回学生 7. 输出全部学生信息 8.退出程序 请输入您的操作:1 请输入学生信息: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 ---目前有1个...

    Java代码检查工具PMD

     它可以为您检查Java代码中存在的如下问题:  1、隐藏的bug,例如空的try catch,switch  2、未调用的代码,例如没有使用的局部变量、参数和私有方法  3、未优化的代码,例如String的不正确使用  4、过于复杂的...

    java字符串替换 代码转换相关源码.rar

    java字符转换类代码,可以实现判断字符串是否为空,并删除首尾空格,字符串替换函数,代码转换,GBK转换为ISO-8859-1,代码转换 从srcCode转换为destCode,代码转换,GBK转换为big5,替换非法字符,标记本身等于分隔...

    Java 开发所需json的jar包,转json格式

    * 将得到的数据以json格式进行输出,如果对象不存在则输出空字符串 * * @param obj * 要转换成json的对象 */ protected String toJson(Object obj) { String json = ""; if (obj != null) { if (isArray...

    JAVA面试题最全集

    将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载 finally?再异常处理时...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    4.5 语句中不能不说的事 84 4.5.1 小心复杂语句中创建的变量 85 4.5.2 别让循环次数给弄懵了 86 4.5.3 循环的嵌套 87 4.6 continue关键字与break关键字 88 4.6.1 continue关键字 88 4.6.2 break关键字 89 4.7...

    跟我学Java面向对象程序设计技术及应用——识别某个自然数是否为质数(素数)的Java程序实现示例.doc

    地包含有main()方法 4、编程示例中的功能实现的程序代码 在该Java程序中,获得用户从键盘中输入的一个数字变量,然后判断所输入的这个数 字是否为素数,并打印出判断的结果。 (1)程序代码示例 package ...

Global site tag (gtag.js) - Google Analytics