Làm thế nào để bạn tạo một giá trị chuỗi rỗng?

Đối tượng String không chứa ký tự nào vẫn là đối tượng. Một đối tượng như vậy được gọi là một chuỗi rỗng. Nó giống như có một tờ giấy trắng [khác với không có tờ giấy nào cả]. Bỏ qua sự khác biệt này là một trong những nhầm lẫn kinh điển của lập trình máy tính. Nó sẽ xảy ra với bạn. Nó xảy ra với tôi. Để chuẩn bị cho sự nhầm lẫn trong tương lai, hãy nghiên cứu chương trình, từng bước một

Phương thức System.out.println[] yêu cầu một tham chiếu đến một đối tượng String là một parameter. Chương trình ví dụ kiểm tra xem mỗi biến có chứa tham chiếu String trước khi gọi println[] với nó không. [Nếu println[] nhận tham số null, nó sẽ in ra "null", điều này sẽ ổn thôi. Nhưng một số phương thức gặp sự cố nếu chúng nhận được tham số null. Thông thường, bạn nên đảm bảo rằng các phương thức nhận được dữ liệu mà họ mong đợi. ]


Trong những ngày đầu của máy tính, mã hóa ký tự ASCII rất phổ biến, mã hóa bảng chữ cái la mã az. ASCII rất đơn giản và chỉ cần 1 byte để lưu trữ 1 ký tự, nhưng nó không có khả năng biểu diễn các ký tự của các ngôn ngữ khác

Mỗi ký tự trong chuỗi Python là một ký tự unicode, vì vậy các ký tự cho tất cả các ngôn ngữ đều được hỗ trợ. Ngoài ra, nhiều biểu tượng cảm xúc đã được thêm vào unicode như một loại ký tự

Mỗi ký tự unicode được xác định bởi một "điểm mã" unicode, về cơ bản là một giá trị int lớn xác định duy nhất ký tự đó. Các ký tự Unicode có thể được viết bằng cách sử dụng phiên bản "hex" của điểm mã của chúng, e. g. "03A3" là ký tự "Sigma" Σ và "2665" là ký tự biểu tượng cảm xúc trái tim ♥

thập lục phân sang một bên. hệ thập lục phân là cách viết một số nguyên trong cơ số 16 bằng cách sử dụng các chữ số 0-9 cộng với các chữ cái A-F, như thế này. 7F9A hoặc 7f9a. Hai chữ số hex cùng nhau như 9A hoặc FF biểu thị giá trị được lưu trữ trong một byte, vì vậy hex là cách dễ dàng truyền thống để ghi ra giá trị của một byte. Khi bạn tìm kiếm một biểu tượng cảm xúc trên web, thông thường bạn sẽ thấy điểm mã được viết ở dạng hex, chẳng hạn như 1F644, biểu tượng cảm xúc đảo mắt 🙄

Bạn có thể viết một ký tự unicode trong chuỗi Python với \u theo sau là 4 chữ số hex của điểm mã của nó. Lưu ý cách mỗi ký tự unicode chỉ là một ký tự nữa trong chuỗi

>>> s = 'hi \u03A3'
>>> s
'hi Σ'
>>> len[s]
4
>>> s[0]
'h'
>>> s[3]
'Σ'
>>>
>>> s = '\u03A9'  # upper case omega
>>> s
'Ω'
>>> s.lower[]     # compute lowercase
'ω'
>>> s.isalpha[]   # isalpha[] knows about unicode
True
>>>
>>> 'I \u2665'
'I ♥'

Đối với điểm mã có nhiều hơn 4 chữ số thập lục phân, hãy sử dụng \U [chữ hoa U] theo sau là 8 chữ số có số 0 đứng đầu nếu cần, chẳng hạn như biểu tượng cảm xúc ngọn lửa 1F525 và biểu tượng cảm xúc không thể tránh khỏi 1F4A9

>>> 'the place is on \U0001F525'
'the place is on 🔥'
>>> s = 'oh \U0001F4A9'
>>> len[s]
4

Không phải tất cả các máy tính đều có khả năng hiển thị tất cả các ký tự unicode, do đó, việc hiển thị một chuỗi có thể trở lại giống như \x0001F489 - cho bạn biết các chữ số hex của ký tự, mặc dù nó không thể được vẽ trên màn hình

Ngôn ngữ lập trình Java phân biệt chuỗi null và chuỗi rỗng. Một chuỗi rỗng là một thể hiện của chuỗi có độ dài bằng 0, trong khi một chuỗi rỗng không có giá trị nào cả

Một chuỗi rỗng được biểu diễn dưới dạng "". Đó là một chuỗi ký tự gồm 0 ký tự. Một chuỗi null được đại diện bởi null. Nó có thể được mô tả là sự vắng mặt của một thể hiện chuỗi

Các phần tử bean được quản lý được biểu diễn dưới dạng thành phần văn bản JavaServer Faces chẳng hạn như inputText được khởi tạo với giá trị của chuỗi trống bằng cách triển khai JavaServer Faces. Việc xác thực các chuỗi này có thể là một vấn đề khi người dùng không bắt buộc phải nhập dữ liệu cho các trường đó. Xem xét ví dụ sau, trong đó chuỗi testString là một biến bean sẽ được đặt bằng đầu vào do người dùng nhập. Trong trường hợp này, đầu vào của người dùng cho trường là không bắt buộc

if [testString==null] {
    doSomething[];
} else {
    doAnotherThing[];
}

Theo mặc định, phương thức doAnotherThing được gọi ngay cả khi người dùng không nhập dữ liệu, vì phần tử testString đã được khởi tạo với giá trị là một chuỗi rỗng

Để mô hình Xác thực Bean hoạt động như dự định, bạn phải đặt tham số ngữ cảnh javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL thành true trong tệp mô tả triển khai web,

    
        javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
    
    true

0

    
        javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
    
    true

Tham số này cho phép triển khai JavaServer Faces coi các chuỗi trống là null

Mặt khác, giả sử rằng bạn có ràng buộc

    
        javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
    
    true

1 đối với một phần tử, nghĩa là đầu vào là bắt buộc. Trong trường hợp này, một chuỗi trống sẽ vượt qua ràng buộc xác thực này. Tuy nhiên, nếu bạn đặt tham số ngữ cảnh javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL thành true, giá trị của thuộc tính bean được quản lý sẽ được chuyển đến thời gian chạy Xác thực Bean dưới dạng giá trị null, khiến ràng buộc
    
        javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
    
    true

1 không thành công

Chủ Đề