判断String是否为空的几种方法(isEmpty(),equals()的用法)

判断String是否为空的几种方法(isEmpty(),equals()的用法)

判断String是否为空的几种方法

判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0

基本的知识

(1)String str1 = null; 表示str1的引用为空,他没有地址, 他是一个没有被实例化的对象

(2)String str2 = " ";表示str2引用为空字符串,他有地址, 他是被实例化的对象,仅仅值为空而已

如果是string对象是null 如果是string对象是null,用 == 来判断,否则会抛出异常 “==

”操作在对String这种引用数据类型来说,比较的是地址

如果是空字符串"" 如果是空字符串"",用来equals() 判断, str.equals("")

equals()"判断的是内容

判断是否为空

str1.equals(str2)

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

isEmpty()的用法

第一种方法

IsEmpty()是Java中用于判断某种容器是否有元素的系统库函数。

如用来判断ArrayList,HashSet,HashMap是否有元素等。

在Java中,可以用isEmpty();判断一个顺序容器ArrayList里面是否有元素,如果有的话返回一个Boolean类型的值false,否则返回true。

import java.util.ArrayList;//在此引入ArrayList所在的库

ArrayList a = new ArrayList();

System.out.println(a.isEmpty());//打印出true

a.add(5);

System.out.println(a.isEmpty());//打印出false

类似的,可以用来判断HashSet或者HashMap等容器是否有元素。

第二种方法

使用 isEmpty() 函数获取字符串 strCom 的值,将返回值赋给 boolean 变量 str。

String strCom = "I like java!"; //定义一个字符串

boolean str = strCom.isEmpty(); //判断字符串是否为空

注意

isEmpty()可以用来判断“”和new String()但不能用来判断null.否则会报空指针异常

通过Java trim() 方法和isEmpty()判断是否为空

trim() 方法用于删除字符串的头尾空白符。

语法

public String trim()

参数

返回值

删除头尾空白符的字符串。

实例

public class Test {

public static void main(String args[]) {

String Str = new String(" www.runoob.com ");

System.out.print("原始值 :" );

System.out.println( Str );

System.out.print("删除头尾空白 :" );

System.out.println( Str.trim() );

}

}

原始值 : www.runoob.com

删除头尾空白 :www.runoob.com

相关代码如下

public class String_Demo01 {

public static void main(String[] args) {

// 创建字符串对象

String s1 = "hello";

String s2 = "hello";

String s3 = "HELLO";

// boolean equals(Object obj):比较字符串的内容是否相同

System.out.println(s1.equals(s2)); // true

System.out.println(s1.equals(s3)); // false

System.out.println("‐‐‐‐‐‐‐‐‐‐‐");

//boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写

System.out.println(s1.equalsIgnoreCase(s2)); // true

System.out.println(s1.equalsIgnoreCase(s3)); // true

System.out.println("‐‐‐‐‐‐‐‐‐‐‐");

}

}

== 和 equals 的区别是什么?

== 解读:

对于基本类型和引用类型 == 的作用效果是不同的,如下所示:

基本类型:比较的是值是否相同;

引用类型:比较的是引用是否相同;

实例:

String x = "string";

String y = "string";

String z = new String("string");

System.out.println(x==y); // true,引用相同

System.out.println(x==z); // false,==:string比较引用,开辟了新的堆内存空间,所以false

System.out.println(x.equals(y)); // true,equals:string:比较值,相同

System.out.println(x.equals(z)); // true,equals:string比较值,相同

equals 解读:

equals 本质上就是 ==,只不过 String 和 Integer 等重写了 equals 方法,把它变成了值比较。看下面的代码就明白了。

首先来看默认情况下 equals 比较一个(有相同值的对象),代码如下:

public class Cat {

private String name;

public Cat(String name){

this.name = name;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public static void main(String[] args) {

Cat c1 = new Cat("cat1");//c1是Cat的实例化对象,c2同理

Cat c2 = new Cat("cat2");

String s1 = new String("隔壁老王");

String s2 = new String("隔壁老王");

System.out.println(c1.equals(c2));//false,equals在比较的类对象的时候比较的是引用

System.out.println(s1.equals(s2)); //true,而在比较string的时候,因为重写了equals方法,和基本数据类型一样,比较的是值,所以为true

}

总结 :== 对于基本类型来说是值比较(不难理解,八种基本数据类型是可以有确定值的),对于引用类型来说是比较的是引用(数组、类、接口没有确定值);而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。

相关推荐

火地晋卦占筮吉凶解释大全,晋卦预示着好还是坏?
beat365最新版体育

火地晋卦占筮吉凶解释大全,晋卦预示着好还是坏?

📅 07-09 👁️ 5716
QQ扩列群高质量指南:从寻找到维护
365bet手机开户

QQ扩列群高质量指南:从寻找到维护

📅 07-15 👁️ 6711
最后一舞!诺伊尔亲承这可能是自己最后一届世界杯,希望圆满!
传奇天下哪个职业厉害 三大职业技能介绍
365bet手机开户

传奇天下哪个职业厉害 三大职业技能介绍

📅 07-30 👁️ 8758
谁是最强的狙击 逆战狙击枪大盘点
365bet手机开户

谁是最强的狙击 逆战狙击枪大盘点

📅 08-12 👁️ 3611
全民奇迹海魔BOSS卡位打法攻略
365bet手机开户

全民奇迹海魔BOSS卡位打法攻略

📅 08-21 👁️ 5943