java中做字符串非空判断,为什么要同时判断字符串不为null和不等于空串?

如题所述

对于null而言。如果一个字符串为null,例如String a = null; 那么此时,调用字符串对象a的方法,例如a.length(); 就会报空指针异常,即NullPointerException。如果这个异常没有被catch住的话,a.length();后面的代码就都不会被执行了。同时,如果这个程序是服务器程序,那么还会出现500这种属于比较严重的问题。所以,在使用字符串对象前要先判断一下其不为null。
不等于空串这个就是根据具体业务而定了,空串也就是字符串长度为0。那么这种字符串在很多时候是没什么意义的。如果一个字符串是空串,那么就可以不执行后面的业务逻辑了(视具体业务而定)。所以这种情况也需要判断。
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-03-05
简而言之就是 : null的出现是声明了对象,判断没有给对象开辟空间; “”空是判断给对象开辟了空间但没有值的情况,String类型同时具备这两种情况,所以都要进行判断,已达到万无一失。
//判断字符串为空串
public boolean checkStringIsNull(String str){
if(str ==null || "".equals(str)){
return true;

}
return false;
}
第2个回答  2021-03-05
这个得看场景。
1、一般在程序开发者,对null和字符串""(其实还有" "这类)做非空判断,如果在我们程序的业务处理中,这两类在处理的业务逻辑上认为是一样的话,就需要同时判断。
2、有些业务场景中对null和字符串"",做了严格区分,这时候就得区别判断了
事实上,大部分处理场景就跟第一点差不多,所以比较常见。
总而言之,就是需要具体场景分析。
另外,对于这种情况判断,题主可以上网看看StringUtils函数
第3个回答  2021-03-05
空字符串和字符串不为空是两个概念,需要唯一确定。

java中做字符串非空判断,为什么要同时判断字符串不为null和不等于空串...
所以,在使用字符串对象前要先判断一下其不为null。不等于空串这个就是根据具体业务而定了,空串也就是字符串长度为0。那么这种字符串在很多时候是没什么意义的。如果一个字符串是空串,那么就可以不执行后面的业务逻辑了(视具体业务而定)。所以这种情况也需要判断。

java中做字符串非空判断,为什么要同时判断字符串不为null和不等于空串...
首先,不为null:如果为null的话,后面会传值会抛异常,如果你没做异常处理,那么会影响你后面代码的执行,也就是说程序会在抛出异常的那一刻停止运行(非循环情况)然后,不为空(字符串中不添加任何内容s="")有些时候,一些程序需要变量有个初始值,比如我想在s="s"的时候将它置空,然后输出,这时候s就不...

java中做字符串非空判断,为什么要同时判断字符串不为null和不等于空串...
你好,很高兴回答你的问题。判断字符串是否是空串,首先要判断有没有这么一个对象,即不为null,然后才判断这个对象是不是空串。不然如果对象不存在,直接判断是不是空串就会抛空指针异常了。如果有帮助到你,请点击采纳。

java中做字符串非空判断,为什么要同时判断字符串不为null和不等于空串...
字符串为空白是没有什么意义的,一般不能为null的时候同样不希望他是空串,如果可以为空串,那么在出现null的时候直接使用空串即可。例如:用户名,用户名不应该为null。那么他可以为“”这样的空白串吗?很明显,这样也是不可以的,因此要判断不为空串,另外我看到题目中是“不等于”,感觉是 != 这...

java 字符串为null 如何判断
1、是首先判断字符串变量的引用是否为空,即空对象的概念,用null来判断,可以用if(str==null) 判断 str是否为空;(注意不能用equals(null),在参数为null情况下,返回值永远是false);2、是在不为空对象的情况下,在判断字符串对象是否为空串,即长度为0.用length()==0。 关键是搞清楚字符串...

java中string型变量判断是否为空哪个正确
首先就要确保他不是null,然后再判断他的长度。 String str = xxx; if(str != null && str.length() != 0) { } 这种做法是安全的,首先他会判断str是否为空,如果为空那么if就直接退出了,就不会再判断后面的str.length() != 0了,这是JAVA的&&特性,也许其他语言也是这样。 扩展资料: String字符串判定是...

使用java编写输入1011,输出一千零一十一的类
思路很简单 首先 需要有一个映射类映射中文和数字的关系 重要结构如下 mapping.properties zh_2=十zh_3=百zh_4=千 cn_0=零cn_1=一... 读取后 1011 后 首先你可以获取这个数字的位数 string input = "1011";int length = input.length;string LastStr = "";for(int i=0;i<length;i++)...

Java空字符串与null的区别和判断字符串是否为空的方法
一、Java空字符串与null的区别:1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;2、内存分配 String str = null ; 表示声明一个字符串对象的引用,...

java字符串问题
1.首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2.new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;3.String str=”kvill”;String str=new String (...

如何判断字符串是否不为空串
\/\/javaString str = null;if(str.isEmpty()){ \/\/当str的长度为0时,返回true System.out.println("该字符串是空串");}

相似回答