String判断是否为空的方式

2024-06-22 16:18

本文主要是介绍String判断是否为空的方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

  1、str == null;

  2、"".equals(str);

  3、str.length <= 0;

  4、str.isEmpty();

  注意: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 判断字符串是否为空的四种方法:

  四种方法执行的效率分别如下:

  JudgeString1耗时:625ms

  JudgeString2耗时:125ms

  JudgeString3耗时:234ms

  JudgeString4耗时:109ms

复制代码
 1  /**
 2 
 3   * 判断字符串是否为空的效率问题
 4 
 5   */
 6 
 7 public class JudgeStringIsEmptyOrNot {
 8 
 9   public static void main(String[] args) {
10 
11       JudgeString1("w_basketboy", 10000);
12 
13       JudgeString2("w_basketboy", 10000);
14 
15       JudgeString3("w_basketboy", 10000);
16 
17       JudgeString4("w_basketboy", 10000);
18 
19   }
20 
21   /**
22 
23   * 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低;
24 
25   * 方法二: 比较字符串长度, 效率高, 是最好的一个方法;
26 
27   * 方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二;
28 
29   * 方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多;
30 
31   */
32 
33 public static void JudgeString1(String str, long num) {
34   long startTiem = System.currentTimeMillis();
35   forint i = 0; i < num; i++) {
36          forint j = 0; j < num; j++) {
37           if (str == null || "".equals(str)) {
38           }
39       }
40   }
41     long endTime = System.currentTimeMillis();
42   System.out.println("function1耗时:" + (endTime - startTiem) + "ms");
43 
44 }
45 
46 public static void JudgeString2(String str, long num) {
47   long startTiem = System.currentTimeMillis();
48   forint i = 0; i < num; i++) {
49       forint j = 0; j < num; j++) {
50           if (str == null || str.length() <= 0) {
51           }
52       }
53   }
54   long endTime = System.currentTimeMillis();
55   System.out.println("function4耗时:" + (endTime - startTiem) + "ms");
56 }
57 
58 public static void JudgeString3(String str, long num) {
59   long startTiem = System.currentTimeMillis();
60   forint i = 0; i < num; i++) {
61       forint j = 0; j < num; j++) {
62           if (str == null || str.isEmpty()) {
63 
64           }
65       }
66   }
67   long endTime = System.currentTimeMillis();
68   System.out.println("function3耗时:" + (endTime - startTiem) + "ms");
69 
70   }
71 
72 public static void JudgeString4(String str, long num) {
73   long startTiem = System.currentTimeMillis();
74   forint i = 0; i < num; i++) {
75       forint j = 0; j < num; j++) {
76           if (str == null || str == "") {
77           }
78       }
79   }
80   long endTime = System.currentTimeMillis();
81   System.out.println("function4耗时:" + (endTime - startTiem) + "ms");
82   }                        

这篇关于String判断是否为空的方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084789

相关文章

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程