Chuẩn hóa xâu s viết hoa đầu mỗi từ năm 2024
Để chuẩn hóa xâu trong Java, chúng ta cần xóa các khoảng trắng thừa ở đầu, cuối và giữa xâu. Trước tiên chúng tay hãy xóa các khoảng trắng ở đầu và cuối bằng phương thức trim(). VD ta có: String str = " nguyen van quan 7826 "; str = str.trim(); Tiếp theo công việc của chúng ta sẽ là cắt bỏ các khoảng trắng thừa ở giữa xâu. Để làm việc này có nhiều cách, ở đây tôi nêu ra 2 cách cơ bản: Cách 1: while (str.indexOf(" ") != -1) str = str.replaceAll(" "," "); +/ s1.indexOf(s2) : phương thức trả về vị trí của s2 trong s1. +/ s.replaceAll(s1,s2) : phương thức thay thế tất cả chuỗi s1 thành s2 trong s. nhưng chỉ duyệt chuỗi s 1 lần. Vì vậy ta cần kết hợp cả vòng while để có thể thay thế tất cả. Cách 2: str = str.replaceAll("\s+", " "); Chương trình minh họa class java_chuanhoaxau { }\=== update === Như trên chúng ta đã chuẩn hóa được chuỗi bằng cách xóa bỏ các khoảng trắng vô nghĩa. Bây giờ ta sẽ chuẩn hóa các từ mà sẽ viết hoa đầu từ kiểu như các danh từ riêng (Hà Nội, Việt Nam hoặc Nguyễn Văn Quân, …) Để làm điều này thì trước tiên chúng ta cứ chuẩn hóa bình thường như trên đã. Bước tiếp theo là viết hoa các ký tự đầu tiên của mỗi từ. Ta sử dụng phương thức split() để tách xâu thành mảng các từ. Sau đó dùng String.valueOf().toUperCase() để viết hoa ký tự đầu tiên mỗi từ cuối cùng là nối với các ký tự còn lại của chúng bằng substring(1). Vậy là đã có mảng các từ viết hoa, tiếp theo là nối các từ lại với nhau và cách nhau 1 dấu cách. package vietSource.net; public class ChuanHoaXau { }Điều hướng bài viếtLam đặt tên các biến trong mã nguồn chương trình của mình theo chuẩn PropCase. Chuẩn PropCase quy ước như sau:
Lam muốn tải mã nguồn của mình lên Github với các biến được đặt tên theo chuẩn join_case có quy ước:
Yêu cầu: Hãy giúp Lam đổi tên biến từ chuẩn PropCase sang chuẩn join_case. Dữ liệu: Vào từ tệp CAU1.INP gồm một xâu độ dài n (1≤n≤1000) là một tên biến đặt theo chuẩn PropCase. Kết quả: Ghi ra tệp CAU1.OUT một xâu là tên biến đặt lại theo chuẩn join_case. Ví dụ 1: CAU1.INP
CAU1.OUT
Ví dụ 2: CAU1.INP
CAU1.OUT
Chuẩn hóa tên là một công việc thường gặp khi xử lý chuỗi, trong bài viết này mình sẽ hướng dẫn các bạn phương pháp để bạn có thể chuẩn hóa tên theo nhiều yêu cầu khác nhau NỘI DUNG :
chuẩn hóa tên 1. Bài toán chuẩn hóa tên 1 Bài toán này sẽ yêu cầu bạn chuẩn hóa tên bằng cách loại bỏ dấu cách thừa giữa các từ và viết hoa chữ cái đầu của từng từ. Ví dụ " nguYEN Thuy linH" => "Nguyen Thuy Linh" Phương pháp làm những bài toán chuẩn hóa tên đó là bạn nên tách từng từ ra sau đó xử lý từng từ và gộp lại Nếu bạn chưa học phương pháp tách từ trong xâu thì bạn có thể tham khảo tại đây Code : include "stdio.h"include "string.h"include "stdlib.h"include "ctype.h"char* chuanHoaTu(char *s){ }
int main(){ }Output : Ten sau khi chuan hoa: Nguyen Van Hoang Bạn có thể in ra luôn token tách được sau khi chuẩn hóa hoặc lưu vào xâu kết quả như mình rồi in ra sau. Code dưới đây mình sẽ viết 1 hàm trả về chuỗi tên chuẩn hóa, các bạn có thể lựa chọn cách mà mình thấy phù hợp Code : include "stdio.h"include "string.h"include "stdlib.h"include "ctype.h"char* chuanHoaTu(char *s){ }
char *chuanHoaTen(char *s, char *res){ }
int main(){ }Output : Ten sau khi chuan hoa: Nguyen Van Hoang 2. Bài toán chuẩn hóa tên 2 Bài toán này yêu cần bạn in ra tên trước rồi mới tới họ và đệm Ví dụ "tran VaN TeCH28" => "Tech28 Tran Van" Trong trường hợp bài toán chuẩn hóa tên yêu cầu bạn in ra thứ tự từ không như ban đầu thì ta nên lưu lại các từ vào mảng 2 chiều, điều này sẽ thuận tiện hơn cho việc in ra từ nào trước từ sao sau. Nếu bạn chưa biết cách lưu lại các từ trong xâu vào mảng 2 chiều thì bạn có thể tham khảo tại đây Code : include "stdio.h"include "string.h"include "stdlib.h"include "ctype.h"char* chuanHoaTu(char *s){ }
int main(){ }Output : Ten sau khi chuan hoa : Hoang Nguyen Van Bằng cách lưu từng từ trong tên vào mảng thì bạn có thể chủ động trong việc in ra theo thứ tự mà đề bài yêu cầu. 3. Bài toán cấp email theo tên Bài toán cấp email thường gặp khi bạn cần cung cấp email cho các nhân viên trong 1 công ty hay các sinh viên trong trường đại học dựa trên tên của họ. |