+3

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi

Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link)

Nếu các bạn dùng maven project thì dễ dàng hơn, chỉ cần import ở file pom.xml

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.7</version>
</dependency>

Nếu các bạn muốn check String có null / full space/ empty không thì thường check kiểu thủ công sẽ như này

package test;

import org.apache.commons.lang3.StringUtils;

public class Main {

    public static void main(String[] args) {
        String a = null;
        String b = "";
        String c = "              ";

        System.out.println("manual result: " + "a: " + validateStringManual(a) + " b: " + validateStringManual(b) + " c: " + validateStringManual(c));

    }

    private static Boolean validateStringManual(String str) {
        if (length(str) == 0 || isFullspace(str)) {
            return true;
        }
        return false;
    }

    public static int length(CharSequence cs) {
        return cs == null ? 0 : cs.length();
    }

    public static Boolean isFullspace(CharSequence cs) {
        int strLen = length(cs);
        for (int i = 0; i < strLen; ++i) {
            if (!Character.isWhitespace(cs.charAt(i))) {
                return false;
            }
        }
        return true;
    }
}

Output

manual result: a: true b: true c: true

Rất dài và loằng ngoằng đúng không nào

Giờ nếu dùng thư viện thì ta chỉ cần làm như này

package test;

import org.apache.commons.lang3.StringUtils;

public class Main {

    public static void main(String[] args) {
        String a = null;
        String b = "";
        String c = "              ";
        
        System.out.println("StringUtils result: " + "a: " + StringUtils.isBlank(a) + " b: " + StringUtils.isBlank(a) + " c: " + StringUtils.isBlank(c));

    }
 }

Output

StringUtils result: a: true b: true c: true

Vẫn như vậy, rất tiện lợi phải không nào?

Còn nếu bạn không muốn check fullspace thì dùng cách sau:

package test;

import org.apache.commons.lang3.StringUtils;

public class Main {

    public static void main(String[] args) {
        String a = null;
        String b = "";
        String c = "              ";

        System.out.println("StringUtils result: " + "a: " + StringUtils.isEmpty(a) + " b: " + StringUtils.isEmpty(a) + " c: " + StringUtils.isEmpty(c));

    }

}

Output

StringUtils result: a: true b: true c: false

StringUtils còn rất nhiều thư viện khác, các bạn có thể check và sử dụng theo mục đích của mình Ví dụ như isNotBlank(), isNotEmpty() ...

Giờ chuyển sang validate Collections trong java

Maven project thì thêm đoạn này vào file pom.xml:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.1</version>
</dependency>

Còn project java thường thì import file jar download tại link

Ví dụ về check xem Collection đó có empty hay null hay không

package test;

import org.apache.commons.collections4.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        List<String> list1 = null;
        List<String> list2 = new ArrayList<>();
        List<String> list3 = new ArrayList<>();
        list3.add("xxx");
        System.out.println("result: " + "list1: " + CollectionUtils.isEmpty(list1));
        System.out.println("result: " + "list2: " + CollectionUtils.isEmpty(list2));
        System.out.println("result: " + "list3: " + CollectionUtils.isEmpty(list3));

    }
}

Output

result: list1: true
result: list2: true
result: list3: false

Đây là chỉ là 1 trong các hàm của lớp CollectionUtils, tùy vào mục đích sử dụng các bạn lấy ra để dùng nhé

Cám ơn các bạn đã đọc hết bài của mình, có gì sai sót vui lòng comment để mình sửa ạ

Fanpage của mình: https://www.facebook.com/morethanacoder

Utube của mình: thanglaptrinh


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí