StringUtils isBlank Vs isEmpty

| Java | 89 | 52 วันที่แล้ว
StringUtils isBlank Vs isEmpty

บทความนี้ผมจะมาทดลองใช้ isBlank กับ isEmpty ดูว่ามันต่างกันยังไง โดยใช้ Lib ของ apache.commons.lang3.StringUtils ไปดูกันเลยคับ เริ่มจากโค้ดที่ใช้ทดสอบ

import org.apache.commons.lang3.StringUtils;

public class FastTest {
    public static void main(String[] args) {
        System.out.println("=== start fast test ===");

        System.out.println("--------Test isBlank");
        System.out.println(StringUtils.isBlank(" "));
        System.out.println(StringUtils.isBlank(""));
        System.out.println(StringUtils.isBlank("1"));
        System.out.println(StringUtils.isBlank(" 1 "));
        System.out.println(StringUtils.isBlank(" 1"));

        System.out.println();

        System.out.println("--------Test isEmpty");
        System.out.println(StringUtils.isEmpty(" "));
        System.out.println(StringUtils.isEmpty(""));
        System.out.println(StringUtils.isEmpty("1"));
        System.out.println(StringUtils.isEmpty(" 1 "));
        System.out.println(StringUtils.isEmpty(" 1"));

        System.out.println("=== end fast test ===");
    }
}

ผลลัพธ์ที่ได้คือ === start fast test === --------Test isBlank true true false false false --------Test isEmpty false true false false false === end fast test === จากโค้ดและผลลัพธ์จะเห็นว่า ต่างกันตรงที่ช่องว่าง ถ้าเป็นช่องว่างหมด isBlank จะเป็น true เพราะมัน blank หรือไม่มีข้อความใด ๆ เลยโดยถือว่าช่องว่างเป็นส่วนที่ไม่ได้นำมาคิด ส่วน isEmpty จะเป็น false เพราะมันมีช่องว่างอยู่ เราลองไปดูโค้ดใน lib กันว่าเค้าเขียนกันยังไง Method isBlank
public static boolean isBlank(CharSequence cs) {
	int strLen;
	if (cs != null && (strLen = cs.length()) != 0) {
		for(int i = 0; i < strLen; ++i) {
			if (!Character.isWhitespace(cs.charAt(i))) {
				return false;
			}
		}

		return true;
	} else {
		return true;
	}
}
Method isEmpty
public static boolean isEmpty(CharSequence cs) {
	return cs == null || cs.length() == 0;
}
จากโค้ดจะเห็นว่า isBlank มีการเช็คช่องว่างเพิ่มเข้ามาด้วย ส่วน isEmpty ก็เช็คแค่ length อย่างเดียว
comments

[1]
AGI
58 D
[1]
Adobe-PDF
1162 D
[1]
Android
1053 D
[2]
Angular
36 D
[40]
Animal
1146 D
[1]
Apache
1162 D
[1]
[4]
[2]
[1]
[10]
CMS-Joomla
1163 D
[2]
CMS-SMF
1163 D
[1]
[4]
[1]
[3]
[1]
Database
1162 D
[4]
[1]
DeAI
23 D
[1]
DeData
23 D
[1]
DeFi
23 D
[2]
Docker
53 D
[2]
[1]
Forex
20 D
[1]
Fruit
1147 D
[1]
General
44 D
[2]
Git
949 D
[6]
HTML
53 D
[1]
Health
48 D
[1]
Housework
1151 D
[2]
IT
1143 D
[2]
Imacro
1163 D
[20]
Java
25 D
[1]
Java-Web
1053 D
[2]
[2]
MQL5
975 D
[3]
MakeMoney
948 D
[18]
[1]
[1]
Maven
947 D
[5]
[1]
Mobile
1160 D
[2]
NGINX
36 D
[2]
NodeJs
53 D
[1]
Oracle
53 D
[3]
Physics
944 D
[4]
PugJS
949 D
[2]
React
958 D
[132]
Science
1145 D
[2]
[5]
Spring
36 D
[12]
[7]
[2]
[1]
[4]
Ubuntu
1113 D
[1]
WebLogic
1144 D
[4]