


A brief analysis of the problem of judging whether a string String is empty in java
1. The methods to determine whether a string str is empty are:
1. str == null;
2. "".equals(str);
3. str. length <= 0;
4. str.isEmpty();
Note: length is an attribute. Generally, the attribute owned by collection class objects is used to obtain the size of the collection.
For example: array.Length is the length of the array.
length() is a method. Generally, string class objects have this method, which also obtains the length of the string.
Explanation:
1. Null means that this string does not point to anything. If you call its method at this time, a null pointer exception will occur.
2. "" means that it points to a string with a length of 0, and it is safe to call its method at this time.
3. Null is not an object, "" is an object, so null does not allocate space, "" allocates space, for example:
String str1 = null; str reference is empty
String str2 = ""; str refers to an empty string
str1 is not an instantiated object yet, but str2 has already been instantiated.
Objects are compared with equals, and null is compared with the equal sign.
If str1=null; the following writing is wrong:
if(str1.equals("")||str1==null){ }
The correct writing is if(str1==null||str1 .equals("")){ //So when judging whether a string is empty, first judge whether it is an object, and if so, then judge whether it is an empty string}
4. Therefore, judge whether a string is Empty, first make sure it is not null, and then determine its length.
String str = xxx;
if(str != null && str.length() != 0) { }
JudgeString2 takes 125ms
JudgeString3 takes 234ms
JudgeString4 takes: 109ms
/** * Created with IntelliJ IDEA. * User: Administrator * Date: 14-1-16 * Time: 上午10:43 * 判断字符串是否为空的效率问题 */ public class JudgeStringIsEmptyOrNot { public static void main(String[] args) { JudgeString1("w_basketboy", 10000); JudgeString2("w_basketboy", 10000); JudgeString3("w_basketboy", 10000); JudgeString4("w_basketboy", 10000); } /** * 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低; * 方法二: 比较字符串长度, 效率高, 是最好的一个方法; * 方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二; * 方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多; */ public static void JudgeString1(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || "".equals(str)) { } } } long endTime = System.currentTimeMillis(); System.out.println("function1耗时:" + (endTime - startTiem) + "ms"); } public static void JudgeString2(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || str.length() <= 0) { } } } long endTime = System.currentTimeMillis(); System.out.println("function4耗时:" + (endTime - startTiem) + "ms"); } public static void JudgeString3(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || str.isEmpty()) { } } } long endTime = System.currentTimeMillis(); System.out.println("function3耗时:" + (endTime - startTiem) + "ms"); } public static void JudgeString4(String str, long num) { long startTiem = System.currentTimeMillis(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (str == null || str == "") { } } } long endTime = System.currentTimeMillis(); System.out.println("function4耗时:" + (endTime - startTiem) + "ms"); } }

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Troubleshooting and solutions to the company's security software that causes some applications to not function properly. Many companies will deploy security software in order to ensure internal network security. ...

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

Field mapping processing in system docking often encounters a difficult problem when performing system docking: how to effectively map the interface fields of system A...

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

Start Spring using IntelliJIDEAUltimate version...

When using TKMyBatis for database queries, how to gracefully get entity class variable names to build query conditions is a common problem. This article will pin...

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...
