Vấn đề: Làm thế nào để xác định vị trí xuất hiện cuối cùng của một chuỗi con trong một chuỗi với Java
Giải pháp: Để giải quyết vấn đề trên trong Java có hỗ trợ sẵn phương phức lastIndexOf của lớp String. Phương thức lastIndexOf gồm có 4 biến thể sau:
public int lastIndexOf(int ch)
Trả về vị trí cuối của ký tự được truyền vào trong chuỗi. Nếu kí tự đó không tồn tại trong chuỗi trả về -1. Bạn xem ví dụ sau:
package sinhviencntt.com.lastIndexString; public class lastIndexString { public static void main(String[] args) { String str = "Hi! Chuc ban vui ve! Hi! Chuc ban vui ve!"; // 101 là mã của ký tự 'e'. 'e' xuất hiện cuối ở vị trí 39. System.out.println(str.lastIndexOf(101)); } }Kết quả in ra màn hình:
39public int lastIndexOf(String str)
Trả về vị trí xuất hiện cuối của chuỗi, vị trí này chính là vị trí của chữ cái đầu tiên trong chuỗi đó. Nếu chuỗi không xuất hiện trả về -1;
package sinhviencntt.com.lastIndexString; public class lastIndexString { public static void main(String[] args) { String str = "Hi! Chuc ban vui ve! Hi! Chuc ban vui ve!"; //Vị trí của "vui" cuối cùng chính là //vị trí của ký tự 'v' trong chuỗi đó. System.out.println(str.lastIndexOf("vui")); } }Kết quả in ra màn hình:
34
public int lastIndexOf(int ch, int fromIndex)
Tìm vị trí xuất hiện cuối cùng của ký tự trong chuỗi thỏa mãn điều kiện sao cho vị trí đó vừa là ký tự ở sau, vừa phải nhỏ hơn chỉ số fromIndex. Nếu không tìm thấy trả về -1.
package sinhviencntt.com.lastIndexString; public class lastIndexString { public static void main(String[] args) { String str = "Hi! Chuc ban vui ve! Hi! Chuc ban vui ve!"; //Chữ "vẻ" cuối nằm vị trí 38, chữ "vui" cuối vị trí 34. //Vậy theo điều kiện thì hàm này sẽ // trả về vị trí 'v' và vị trí đó nhỏ hơn 37. Nên nó sẽ chọn //vị trí 'v' của chữ "vui". System.out.println(str.lastIndexOf('v', 37)); } }Kết quả in ra màn hình:
34
public int lastIndexOf(String str, int fromIndex)
Tìm vị trí xuất hiện cuối cùng của chuỗi con thỏa mãn điều kiện sao cho vị trí đó vừa là ký tự ở sau, vừa phải nhỏ hơn chỉ số fromIndex. Nếu không tìm thấy trả về -1.
package sinhviencntt.com.lastIndexString; public class lastIndexString { public static void main(String[] args) { String str = "Hi! Chuc ban vui ve! Hi! Chuc ban vui ve!"; System.out.println(str.lastIndexOf("vui", 100)); } }Kết quả in ra màn hình:
34
Cảm ơn các bạn đã theo dõi bài viết.