java判断字符串不为空_Java判断字符串是否为空的方法

java判断字符串不为空_Java判断字符串是否为空的方法Java 空字符串与 null 的区别 1 类型 null 表示的是一个对象的值 而并不是一个字符串 例如声明一个对象的引用 Stringa null 表示的是一个空字符串 也就是说它的长度为 0 例如声明一个字符串 Stringstr 2 内存分配 Stringstr null 表示声明一个字符串对象的引用 但指向为 null 也就是说还没有指向任何的内存空间 Strings

Java空字符串与null的区别:

1、类型

null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;

“”表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = “” ;

2、内存分配

String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;

String str = “”;    表示声明一个字符串类型的引用,其值为””空字符串,这个str引用指向的是空字符串的内存空间;

在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap):

就如下:

String str = new String(“abc”) ;

ps:=左边的是存放在栈中(stack),=右边是存放在堆中(heap)。

3、示例程序:

69c5a8ac3fa60e0848d784a6dd461da6.png

public class String_Demo01 {

/

* @param args

*/

public static void main(String[] args) {

String str1 = new String() ;

String str2 = null ;

String str3 = “” ;

System.out.println(str1==str2); //内存地址的比较,返回false

System.out.println(str1.equals(str2)); //值的比较,返回false

System.out.println(str2==str3); //内存地址的比较,返回false

System.out.println(str3.equals(str2)); //值的比较,返回false

System.out.println(str1==str3); //内存地址的比较,返回false

System.out.println(str1.equals(str3)); //值的比较,返回true

}

}

69c5a8ac3fa60e0848d784a6dd461da6.png

通过如上的程序可以得出如下结论:

字符串对象与null的值不相等,且内存地址也不相等;

空字符串对象与null的值不相等,且内存地址也不相等;

new String()创建一个字符串对象的默认值为”” (String类型成员变量的初始值为null)

以下是java 判断字符串是否为空的四种方法:

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

if(s == null || s.equals(“”));

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

if(s == null || s.length() == 0);

方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.

if(s == null || s.isEmpty());

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

if (s == null || s == “”);

注意: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”);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225762.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:35
下一篇 2026年3月17日 上午8:36


相关推荐

  • matlab作卷积的公式,卷积相关公式的matlab代码

    matlab作卷积的公式,卷积相关公式的matlab代码取半径 3 用 matlab 代码实现上式公式 length 3 forKi 1 lengthforKj 1 lengthforKk 1 lengthKsigma Ki Kj Kk exp Ki 2 2 8 Kj 2 2 8 Kk 2 2 8 此公式为 K u 3endendendKO

    2026年3月16日
    2
  • js 判断字符串为空的方法

    js 判断字符串为空的方法参考一 functionisEm obj if typeofobj undefined obj null obj returntrue else returnfalse 参考二 if variable1 null variable1

    2026年3月19日
    1
  • 2021-IP地址详解02「建议收藏」

    2021-IP地址详解02「建议收藏」网络域网:一般称为内网单局域网的构成:交换机,网线,PC()交换机:用来组件内网的局域网的设备ip地址ip地址就是一个唯一的标识,是一段网络编码(二进制)由32位构成11010010.01001001.10001100.00000110=210.73.140.6ip地址的形式:X.X.X.XX的范围:0-255子网掩码局域网通信规则:在同一局域网中,所有的IP必须在同一网段中才能互通通信!IP地址构成:网络位:网络位+主机位(网络位相同的IP地址,位同一网段)

    2022年6月24日
    71
  • Android源码解析–EventBus原理

    Android源码解析–EventBus原理版权声明 本文为 openXu 原创文章 openXu 的博客 未经博主允许不得以任何形式转载目录 1 EventBus 使用 2 Subscribe3 register 注册订阅者 3 1 查找订阅方法 3 2subscribe 注册 4 unregister 注销订阅 5 post 发布事件 6 事件分发 HandlerPoste amp amp AsyncPoster7 粘性事件 SubscriberIn 总结 EventBus 是 greenr

    2026年2月11日
    2
  • (一)DSP28335

    (一)DSP28335前言 用于记录一些在学习实验室 48V 无人机项目所用的 DSP28335 时的一些心得体会 主要参考资料是普中科技的那个资料手册 1 通信相关区分开串口通信与串行通信 串口通信 SerialCommun 属于串行通信 通常 DSP 引脚输入 输出使用 TTL 电平 而 TTL 电平的 1 和 0 的特征电压分别是 2 4V 和 0 4V 适用于板内数据传输 TTL 电平与 RS232 电平之间要互相转换 常使用 MAX232 进行转换待解决 28335 中 SCI 和 RS232 是什么关系

    2026年3月26日
    2
  • Django(12)项目报错AttributeError: ‘bytes’ object has no attribute ‘encode'[通俗易懂]

    Django(12)项目报错AttributeError: ‘bytes’ object has no attribute ‘encode'[通俗易懂]报错情况Django使用makemigrations做数据迁移的时候报如下错误File"/Users/jkc/.virtualenvs/django_env/lib/python3.7

    2022年7月30日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号