Bài tập xử lý chuỗi trong java

     

Chuẩn hóa xâu vào Java, xóa khoảng tầm trắng thừa, cách xử trí chuỗi vào java. Bài xích tập thao tác với xâu kí tự sử dụng một trong những hàm giải pháp xử lý String như Split, trim, giảm chuỗi, tìm chuỗi con, đếm kí tự, từ bỏ . . .

Bạn đang xem: Bài tập xử lý chuỗi trong java


1. Chuẩn chỉnh hóa xâu là gì?

Khi nhắc tới việc cách xử trí chuỗi, làm việc với chuỗi thì việc chuẩn hóa xâu kí từ bỏ là bài toán làm trước tiên mà bất kể người new học lập trình nào thì cũng đều đề xuất biết.

Chuẩn hóa xâu sống đây chính là việc xử trí một chuỗi (xâu kí tự) dạng String, char về một định dạng theo một quy chuẩn nào đó. Thường vẫn là xóa bỏ khoảng trắng dư quá trong xâu. Chuẩn chỉnh hóa thành định dạng tên riêng ( viết hoa chữ cái đầu) . . .

Ví dụ:


// Xâu chưa chuẩn chỉnh hóaString st = " *** welCoMe to thietkewebshop.vn ** ";// Xâu sau khi chuẩn hoátst = "** Welcome lớn thietkewebshop.vn **"
Java là ngữ điệu được nhận xét là xử lý chuỗi mạnh bạo nhất. Nó có thư viện to với những phương thức giúp việc chuẩn chỉnh hóa rất là dễ dàng, bạo dạn hơn không hề ít so với ngữ điệu khác. Trong nội dung bài viết này bản thân sẽ thuộc bạn khám phá về nó nhé!

2. Ra mắt bài toán

Đề bài mình sẽ tóm tắt lại như sau: tạo lớp ChuanHoaXau gồm thuộc tính là 1 trong xâu kí tự. Viết những phương thức được cho phép

Nhập xâu trường đoản cú bàn phím, in xâu vừa nhập ra màn hìnhPhương thức chuẩn hóa xâu theo quy tắc: xóa sổ khoảng trắng dư thừa, viết hoa kí tự trước tiên của mỗi từ.Phương thức đếm kí tự quan trọng của xâu ( kí tự nhất là kí tự không hẳn chữ, không phải số)Mở rộng lớn xây dựng cách tiến hành đếm số từ bắt đầu bằng kí tự “T”.

Phần cuối cùng của nội dung bài viết mình sẽ có được full source code cho việc này nhé!

3. Chuẩn hóa xâu bởi Java

Phần nhập xâu, xuất xâu thì không có gì cạnh tranh khăn. Bây chừ mình sẽ giải quyết và xử lý phần chuẩn hóa xâu trước.

3.1 Xóa khoảng trắng thừa

Lớp String trong java có nhiều phương thức cung cấp việc chuẩn chỉnh hóa. Mang xử xâu lúc đầu có định dạng là:


String st = " *** welCoMe to thietkewebshop.vn ** ";
Đầu tiên bọn họ sẽ thực hiện hàm trim(), phối hợp sử dụng hàm tolowercase(). Hàm trim() để xóa khỏi khoảng trắng ở đầu với cuối xâu st, hàm tolowercase() góp biến cục bộ các kí từ bỏ thành chữ thường.

Tiếp theo họ sử dụng hàm replaceAll(“String1”, “String2”) . Hàm này sẽ sửa hết cục bộ các String1 trong xâu st thành String2.

Xâu “\s+” là 1 trong xâu quan trọng đặc biệt trong Java. Xâu này là định nghĩa mang đến xâu gồm tất cả các khoảng chừng trắng liên tục. Bọn họ sẽ sửa nó thành một khoảng trắng ” ” là được.


public void chuannHoa() st=st.trim().toLowerCase(); st = st.replaceAll("\s+", " ");

3.2 Viết hoa vần âm đầu tiên

Xong đoạn xóa khoảng chừng trắng. Hiện giờ đến đoạn biến những chữ chiếc đầu của từng từ thành chữ cái in hoa.

Xem thêm: Gửi Đào Tạo Ngành Y La Gì - Các Trường Công An Xét Tuyển Bổ Sung Ngành Y

Cách giải quyết được nhiều người áp dụng nhất kia là: bóc tách xâu st thành những xâu con dựa vào các khoảng trắng. Kế tiếp viết hoa chữ cái trước tiên của từng xâu con. Sau cùng ghép lại thành xâu st ban đầu.

Để thực hiện tách, bạn cần khai báo một mảng String temp<> dùng để lưu trữ các xâu con.

Tiếp tục sử dụng một hàm cực kỳ bá đạo, hàm split(). Hàm này đã tác chuỗi thành các chuỗi con phụ thuộc kí tự truyền vào. Ở đây họ sẽ bóc các xâu con nhờ vào dấu cách.


String<> temp= st.split(" ");
Sau đó ta thực hiện duyệt từng bộ phận của mảng temp. Và thực hiện câu lệnh


t+=String.valueOf(temp.charAt(0)).toUpperCase() + temp.substring(1)
Trong đó:

Hàm String.valueOf() để đổi thay một kí trường đoản cú kiểu bất kỳ thành vẻ bên ngoài String. Ở thuộc kiểu String thì mới cộng được những xâu lại với nhau, bao gồm hàm toUppercase().Hàm temp.charAt(0) : Hàm để lấy 1 phần tử ở phần 0 của xâu temp thành hình dạng char. Họ phải dùng hàm này mới lấy được thành phần ở vị trí 0 của xâu bé tempHàm toUppercase() để đổi thay kí tự thứ nhất thành chữ hoaHàm temp.substring(1) dùng để làm lấy tổng thể các phần tử từ địa điểm 1 mang đến cuối xâu temp

Kết quả là ta vẫn viết hoa chữ cái đầu tiên của xâu temp. Triển khai duyệt mảng để tiến hành với đông đảo xâu temp. Với mỗi phần tử duyệt xong ta mang cộng bọn chúng với xâu st với một khoảng chừng cách.


public void chuannHoa() {st=st.trim().toLowerCase();st = st.replaceAll("\s+", " ");String<> temp= st.split(" "); // sau khi bóc xong, gán xâu st thành sâu rỗngst="";for(int i=0;i
Văn phong của mình rất có thể hơi khó khăn hiểu, bạn xem code rõ ràng là đọc ngay.

3.3 Hàm đếm những kí tự sệt biệt

Đây là một trong những nội dung mở rộng cho câu hỏi của mình. Cách tiến hành rất 1-1 giản. Bạn chỉ việc cho vòng lặp coi ngó từ thành phần đầu tiên đến bộ phận cuối cùng của xâu.


// Đếm kí tự quan trọng tron xâu st public int demKTDB() {int ktDB =0;for(int i=0;i

3.4 Đếm từ ban đầu bằng vần âm bất kì

Ở đây mình sẽ đếm số từ bắt đầu bằng chữ “T”. Chúng ta có thể ứng dụng để viết hàm tra cứu kiếm xâu bé nhập vào từ keyboard . . .

Thuật toán rất đơn giản. Đầu tiên đánh giá xem từ đầu tiên có cần từ bước đầu bằng kí trường đoản cú ‘T’ không. Nếu có tăng biến chuyển đếm thêm 1.

Tiếp theo triển khai duyệt mảng từ địa điểm 1 đến vị trí cuối cùng. Nếu ở trong phần i là ‘ ‘ cùng i +1 là kí từ bỏ ‘T’. Thực hiện tăng đổi thay đếm.

Xem thêm: Tỉnh Ninh Thuận Thuộc Miền Nào, Điều Kiện Tự Nhiên Và Xã Hội


// Hàm đếm từ xuất hiện bằng kí từ bỏ T.public int countLetter() {int letter =0; // trở nên đếm // chất vấn chữ đầu tiênif(st.charAt(0)=="T"); letter+=1;for(int i=1;i

4. Lịch trình hoàn chỉnh

Ghép lại các phần trên sau đó chỉnh sửa, thêm sút một chút. Là có toàn bộ một chương trình hoàn chỉnh như phần dưới.


/* Github: https://github.com/duongdinh24/ *
author by admin thietkewebshop.vn * * De bai: * Nhap vao xau, dem so ki tu dac biet ( isLetterOrDigit * Dem so tu bat dau bang ki tu T * Chuan hoa xau : xoa vùng trang thua, chu cai dau tien viet hoa */import java.io.*;import java.util.*;public class ChuanHoaXau {private String st;public ChuanHoaXau(String s) st=s;public ChuanHoaXau() // Hàm nhập String từ bàn phím có sử dụng try catchString nhapString() String x;DataInputStream ip = new DataInputStream(System.in);try x=ip.readLine();catch(Exception e) System.out.println("Nhap lai!");x=nhapString();return x;public void nhapXau() System.out.println("Nhap xau: ");st=nhapString();public void hienThi() System.out.println(st);// Hàm đếm kí tự quánh biệtpublic int demKTDB() {int ktDB =0;for(int i=0;i
Kết quả khi chạy lịch trình trên


*

Lời ở đầu cuối mình nhờ cất hộ lời cảm ơn tới bạn đọc đã vồ cập tới bài viết này. Nếu như có chủ ý thắc mắc hay đóng góp, để lại phản hồi xuống phía dưới bài viết nhé!