`
文艺的程序猿
  • 浏览: 98545 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java判断字符串是否为空的方法总结

    博客分类:
  • JAVA
阅读更多
1,错误用法一:

if (name == "") {
     //do something
}

2,错误用法二:
if (name.equals("")) {
     //do something
}


3,错误用法三:
if (!name.equals("")) {
     //do something
}


我们来解说一下:
上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程序出现bug,永远也不会为true,也就是时说,if块里的语句永远也不会被执行。

上述用法二,用法三 的写法,是包括很多Java熟手也很容易犯的错误,为什么是错误的呢?也许你会感到纳闷。
对,它们的写法本身没错,但是,少了一个null判断的条件,试想,如果name=null的情况下,会发生什么后果呢?后果是,你的程序将抛出NullPointerException异常,系统将被挂起,不再提供正常服务。
当然,如果之前已经对name作了null判断的情况例外。

正确的写法应该先加上name != null的条件,如例:

if (name != null && !name.equals("")) {
     //do something
}

或者

if (!"".equals(name)) {//将""写在前头,这样,不管name是否为null,都不会出错。
     //do something
}


下面,我们举一个简单的例子:

TestNullOrEmpty.java

public class TestNullOrEmpty {

    public static void main(String[] args) {
         String value = null;
         testNullOrEmpty(value);
       
         value = "";
         testNullOrEmpty(value);
       
         value = " ";
         testNullOrEmpty(value);
       
         value = "hello me! ";
         testNullOrEmpty(value);
     }
   
    static void testNullOrEmpty(String value) {
        if (value == null ) { //正确的写法
             System.out.println("value is null. ");
         } else if ("".equals(value)) { //正确的写法
             System.out.println("value is blank but not null. ");
         } else {
             System.out.println("value is /" " + value + "/" ");
         }
       
        if (value == "") {  //NG 错误的写法
        //别用这种写法
         }
     }
}

编译执行:
c:/>javac TestNullOrEmpty.java

c:/>Java TestNullOrEmpty
value is null.
value is blank but not null.
value is " "
value is "hello me!"

分享到:
评论

相关推荐

    java 判断字符串是否是中文

    java 判断字符串是否是中文 共总结了6种方法。。。。

    从字符串中找出每个字符出现的次数java代码

    从字符串中找出每个字符出项的次数java代码,这是总结了前人的很多方法自己总结的,很容易懂,算法也比较巧妙,和大家分享下

    LeetCode判断字符串是否循环-java:Java

    LeetCode判断字符串是否循环 知识点总结 java基础 1、使用迭代器和for each循环查看集合元素时只能获得元素的值,不能改变元素 2、类和对象初始化过程: 类:父类->子类,静态方法->静态代码块 对象:父类->子类,...

    java常用方法大全

    2 、判断字符串的前缀或后缀与已知字符串是否相同 前缀 startsWith(String s) 后缀 endsWith(String s) 3、比较两个字符串 equals(String s) 4、把字符串转化为相应的数值 int型 Integer.parseInt(字符串) ...

    java8 统计字符串字母个数的几种方法总结(推荐)

    下面小编就为大家分享一篇java8 统计字符串字母个数的几种方法总结(推荐),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来吧

    JavaSE 字符串的总结

    1.字符串的概述: 字符串在...所以可以用一种方法来确定字符串String的长度,String类提供了length()方法来判断字符串的长度,调用这个方法可以返回字符串中的字符数。  语法格式如下:  字符串1.length();//返回字

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

    9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 String类的最佳拍档——StringBuffer类...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 String类的最佳拍档——StringBuffer类...

    JAVA基础课程讲义

    字符串相等的判断 92 思考作业 93 上机作业 94 第四章 异常机制 95 导引问题 95 异常(Exception)的概念 96 异常分类 96 Error 97 Error和Exception的区别 97 Exception 97 异常的处理办法之一,捕获异常 99 try块 ...

    java 算法

    多线程的世界时钟,显示巴黎,罗马,上海时间, AWT界面,Java日期格式化及其使用例子,几个常用方法,判断字符是否属于中文,异常处理类,去掉字符串中重复的子字符串,将指定byte数组以16进制的形式打印到控制台,...

    Java程序设计习题集下载

    习题集内容覆盖面广,包括:Java言的基本常识、基本语法、面向对象的基本概念、数组、字符串、异常处理、文件和数据流、图形用户界面设计、小应用程序、线程、编程规范、网络程序设计、多媒体民图形学程序设计以及...

    javascript中判断json的方法总结

    简单地说, JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串(伪对象) ,然后就可以在函数之间轻松地传递这个字符串,或者 在异步应用程序中将字符串从 Web 客户端传递给服务器端程序 。这个字符串看起来...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    javascript 正则 判断是否是数字的脚本

    您可能感兴趣的文章:解析使用js判断只能输入数字、字母等验证的方法(总结)js判断输入是否为正整数、浮点数等数字的函数代码javaScript 判断字符串是否为数字的简单方法javascript使用isNaN()函数判断变量是否为数字...

    Java高级程序设计实战教程第三章-Java反射机制.pptx

    根据这个字符串获得某个类的Class实例,这样就可以动态配置一些东西,不用每一次都要在代码里面去new或者做其他的事情,以后要改的话直接改配置文件,代码维护起来就很方便了,同时有时候要适应某些需求,Java类里面...

    java基础知识

    七 字符串常用的提取和查询的方法 43 八 练习: 44 Java知识点总结 48 一 布尔类型 48 二 强转 48 三 运算符: 49 1 关系运算符: 49 2 逻辑运算符 49 3 算数运算符: 49 4 赋值运算符: 49 5 连接符 : 49 四 ...

    Java之IO流学习总结

    File类保存文件或目录的各种元数据信息,包括文件名、文件长度、最后修改时间、是否可读、获取当前文件的路径名,判断指定文件是否存在、获得当前目录中的文件列表,创建、删除文件和目录等方法。 9....

    Java实现比较版本号

    涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法;  这需要我们总结版本号的通用规则,设计一个比较算法并封装成通用方法来使用:  ...

    整理后java开发全套达内学习笔记(含练习)

    System.out.printf() 可插入带 % 的输入类型,前两种只可以插入转义符, 不能插入 % 的数据或字符串 在 printf 里面,输出有5个部分 %[argument_index$][flags][width][.precision]conversion 以“%”开头,[第几个...

    Java 虚拟机面试题全面解析(干货)

    Java 虚拟机面试题全面解析,《深入理解Java虚拟机》干货版,自己总结,希望能够帮助大家,免费下载~什么是类加载机制? 虚拟机和物理机的区别是什么? 运行时栈帧结构 Java方法调用 什么是方法调用? Java的方法调用,...

Global site tag (gtag.js) - Google Analytics