Để chuyển đổi tiếng việt có dấu thành không dấu trong Java có cách đơn giản bằng cách gọi và sử dụng các gói đã có sẵn.
* Hàm chuyển đổi:
package sinhviencntt.com.StringUtils;Normalizer: Class này cung cấp các phương thức để tiêu chuẩn hóa văn bản Unicode thành văn bản tương đương. Nhằm mục đích thuận tiện cho việc sắp xếp và tìm kiếm chuỗi.
import java.text.Normalizer;
import java.util.regex.Pattern;
public class StringUtils {
public static String removeAccent(String s) {
String temp = Normalizer.normalize(s, Normalizer.Form.NFD);
Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
return pattern.matcher(temp).replaceAll("");
}
}
String temp = Normalizer.normalize(s, Normalizer.Form.NFD): Tiêu chuẩn hóa chuỗi s được truyền vào theo định dạng NFD. Kết quả trả về là chuỗi đã được tiêu chuẩn hóa.
Lớp Pattern: Dùng để nhận Regexp (Cấu trúc đại diện hay Regular Expression) vào và kiểm tra những String cho vào dựa trên Regexp đã tạo ra. Thông thường để nhận một Regexp, thì dùng phương thức compile.
matcher: Dùng để so sánh, tìm kiếm những chữ đưa vào dựa trên Regexp đã tạo ra.
* Hàm main:
Kết quả in ra màn hình:
package sinhviencntt.com.main;
import sinhviencntt.com.StringUtils.StringUtils;
public class chuyendoitiengviet {
public static void main(String[] args) {
System.out.print(StringUtils.removeAccent("Sinh Viên Công Nghệ Thông Tin"));
}
}
Sinh Vien Cong Nghe Thong TinBạn tạo project và run thử nhé! Cảm ơn các bạn đã theo dõi bài viết. Nếu có gì cần trao đổi bạn Comment bên dưới.
Xem tất cả các Bài Tập Java: Vào Đây
Sign up here with your email
ConversionConversion EmoticonEmoticon