Có vẻ như cách tốt nhất để có được sự chính xác là giữ cho các lập trình viên không thực hiện "hack chuỗi" ... việc viết các từ, dấu gạch ngang, đếm từ, biện minh, di chuyển con trỏ, v.v. Tất cả các khung UI hiện đại sẽ thực hiện công cụ này cho bạn những ngày này.
Nghĩa là, sự trừu tượng mà bạn thường làm việc có nhiều hơn một "đối tượng hiển thị đoạn", chẳng hạn như đối với GTK: http :
// l Library.gnome.org/devel/pango/ sóng / pango-Time -Ojectject.html
chứ không phải là một chuỗi grapheme, chẳng hạn như: http :
// l Library.gnome.org/devel/pango/urdy/pango-Glyph-Storage.html
Để có được chuỗi glyphs, bạn cần thông tin chỉ có sẵn ở cấp độ "xem", vì vậy hầu hết việc sử dụng chuỗi có thể không có thông tin này. Ví dụ, bạn phải biết phông chữ, vì phông chữ có thể có các chữ ghép khác nhau.
Ngoài loại vấn đề thực tế đó, glyphs có thể không phải là thứ bạn muốn.
Trong nhiều ngữ cảnh, bạn muốn sử dụng các thuộc tính Unicode thích hợp, được hiển thị trong API này, ví dụ: http :
// l Library.gnome.org/devel/pango/urdy/pango-Text-Processing.html#PangoLogAttr
Như bạn có thể thấy từ cấu trúc đó (phản ánh các thuật toán Unicode) làm nhiều việc khác nhau ở các ranh giới glyph không chính xác hơn việc thực hiện chúng ở các ranh giới ký tự.
Hai thông số kỹ thuật này mô tả các thuật toán để tìm các loại ranh giới khác nhau:
Thực hiện xử lý văn bản liên quan đến việc tìm các ranh giới đó với các thuật toán và sau đó làm việc với các ranh giới.
Nếu bạn bắt đầu đào sâu về việc khó xử lý tất cả các ngôn ngữ một cách chính xác, bạn sẽ nhanh chóng nhận ra mình cần một thư viện xem toàn bộ đoạn văn và xử lý chúng đúng cách. Windows, Mac, Linux (Qt và GTK) và Java đều đi kèm với các phương tiện cho việc này, ví dụ như có http://site.icu-project.org/ .
Khi viết ứng dụng web, thật không may, bạn khá nhiều phải để trình duyệt (có thể được hệ điều hành trợ giúp) làm công cụ này, theo như tôi biết. Tất cả những gì bạn có thể làm trong JavaScript hoặc ở phía máy chủ là làm rối tung nó lên.
Có lẽ tôi đã tổng hợp câu trả lời là: hầu hết thao tác chuỗi trên văn bản ngôn ngữ tự nhiên bị hỏng, vì vậy không có nhiều điểm đáng lo ngại về lớp chuỗi, ngoài việc có thể có một phương thức không có phương thức nào trên đó ;-)