Viết hoa một chuỗi

Java:
Viết hoa một chuỗi

Làm thế nào:

Trong Java, không có phương thức sẵn có để viết hoa một chuỗi hoàn toàn (chữ cái đầu tiên viết hoa, phần còn lại viết thường), nhưng đây là một hàm nhanh để làm chính điều đó:

public class StringCapitalizer {
    public static void main(String[] args) {
        String input = "java is fun!"; // chuỗi ví dụ
        String output = capitalizeString(input);
        System.out.println(output); // Java is fun!
    }

    public static String capitalizeString(String str) {
        if(str == null || str.isEmpty()) {
            return str;
        }
        return str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase();
    }
}

Sâu hơn nữa

Trước Java 8, phương pháp ở trên là một cách phổ biến để viết hoa một chuỗi. Kể từ khi giới thiệu streams trong Java 8, chúng ta cũng có thể thao tác chuỗi với sự linh hoạt hơn.

Một cách thay thế để viết hoa sử dụng streams:

import java.util.stream.*;

public class StringCapitalizer {
    public static void main(String[] args) {
        String input = "java is cool!";
        String output = Arrays.stream(input.split("\\s"))
                              .map(word -> word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase())
                              .collect(Collectors.joining(" "));
        System.out.println(output); // Java Is Cool!
    }
}

Cách này tách chuỗi thành các từ, viết hoa từng từ và nối chúng lại với nhau. Lưu ý sự khác biệt: mỗi từ được viết hoa, không chỉ chữ cái đầu tiên.

Chuỗi trong Java là bất biến - có nghĩa là, một khi nó được tạo ra, chúng không thể thay đổi. Các phương pháp có vẻ như thay đổi chuỗi, như toUpperCase hoặc toLowerCase, thực sự tạo ra các chuỗi mới với các thay đổi được áp dụng.

Về mặt hiệu suất, StringBuilder thường được sử dụng cho việc thao tác chuỗi, bởi vì nó có thể thay đổi. Nó tránh được chi phí tạo ra nhiều đối tượng chuỗi. Tuy nhiên, đối với việc viết hoa đơn giản, lợi ích về hiệu suất không lớn, do đó, một ví dụ về StringBuilder được bỏ qua.

Xem thêm