Trong chuỗi bài hướng dẫn và chia sẻ kiến thức về Java cơ bản, chúng ta đã làm việc qua khá nhiều phương thức hay ho được cung cấp sẵn.
Từ cách làm việc với số, với các kiểu dữ liệu và toán tử đến các phương pháp và lộ trình học Java tốt.
Tuy nhiên, Java cơ bản còn rất nhiều thứ cần để học, chẳng hạn như indexOf – bạn đã biết đến indexOf trong Java chưa? Hay là chúng ta lướt qua một vòng về indexOf để biết nó là gì nhé.
1. Phương thức indexOf dùng để làm gì?
Phương thức indexOf trong Java
Trong các phương thức cơ bản mà Java cung cấp để làm việc với số - với chuỗi thì chúng ta không thể bỏ qua phương thức indexOf được.
Bởi phương thức indexOf là nhân tố cực kỳ quan trọng làm giảm bớt đi mọi rắc rồi và phức tạm của các phương pháp xử lý chuỗi thủ công mang lại.
Trong Java, phương thức indexOf() được sử dụng để tìm chỉ mục (hay còn được gọi là vị trí) của một ký tự hoặc một chuỗi con cho trước trong một chuỗi cha xác đinh nào đó.
Nghĩa là với một chuỗi string truyền vào thì java.lang.String.indexOf(String str)
sẽ trả về một nguyên k
nhỏ nhất sao cho this.startsWith(str, k)
là true
.
2. Các cách sử dụng phương thức indexOf trong Java (Ví dụ cụ thể)
IndexOf() trong Java đa dạng về cách sử dụng và phạm vi các trường hợp áp dụng, cụ thể indexOf có hết thảy 4 biến thể. Bài viết này, mình sẽ mô tả một cách tường tận về chúng.
String indexOf(): Phương thức này trả về chỉ mục - nơi ký tự được chỉ định xuất hiện đầu tiên trong chuỗi cha hoặc nếu ký tự không tồn tại sẽ trả về -1.
Cú pháp:
public int indexOf(int character)
Trong đó:
-
character: là kí tự mà ta cần biết vị trí.
Ví dụ: Nếu bạn muốn tìm ví trí xuất hiên đầu tiên của kí tự “N
” trong câu “Hà Nội 36 Phố phường
” ta có thể làm như sau:
package indexOf;
public class IndexOfExample {
public static void main(String args[]) {
// Khởi tạo chuỗi mẫu
String indexString = new String("Hà Nội 36 phố phường");
// In ra vị trí đầu tiên của N trong chuỗi mẫu
System.out.println(indexString.indexOf('N')); // 3
}
}
String indexOf(char ch, int strt): Phương thức này trả về chỉ mục - nơi ký tự được chỉ định xuất hiện đầu tiên trong chuỗi cha tính từ vị trí cần tìm cho trước hoặc nếu ký tự không tồn tại sẽ trả về -1.
Cú pháp:
public int indexOf(int character, int string_start)
Trong đó:
-
character: là kí tự cần tìm chỉ mục
-
string_start: vị trí bắt đầu tìm kiếm trong chuỗi đã cho.
Ví dụ: Với chuỗi “Hà Nội 36 phố phường
” ta muốn biết vị trí của kí tự ‘h
’ tính từ vị trí thứ 12
thì sao? indexOf(char ch, int strt)
trong trường hợp này có phải đã bỏ qua vị trí h - 11
không?
package indexOf;
public class IndexOfExample {
public static void main(String args[]) {
// Khởi tạo chuỗi mẫu
String indexString = new String("Hà Nội 36 phố phường");
// In ra vị trí đầu tiên của 'h' trong chuỗi mẫu tính từ ví trí 12
System.out.println(indexString.indexOf('h', 12)); // 15
}
}
String indexOf(String str): Phương thức này trả về chỉ mục - nơi chuỗi con xuất hiện lần đầu tiên trong chuỗi cha. Bắt đầu tìm kiếm từ vị trí 0 - Nếu không tìm thấy chuỗi con kết quả sẽ trả về -1.
Cú pháp:
int indexOf(String sub_string)
Trong đó:
-
sub_string: là chuỗi con cần tìm chỉ mục.
Ví dụ: Để tìm vị trí của chuỗi con “36
” trong câu “Hà Nội 36 phố phường
” ta có đoạn code mẫu như sau:
package indexOf;
public class IndexOfExample {
public static void main(String args[]) {
// Khởi tạo chuỗi mẫu và chuỗi con
String indexString = new String("Hà Nội 36 Phố phường");
String sub_string = "36";
// In ra vị trí đầu tiên của '36' trong chuỗi mẫu
System.out.println(indexString.indexOf(sub_string)); // 7
}
}
String indexOf(String str, int strt): Phương thức này trả về chỉ mục - nơi chuỗi con xuất hiện lần đầu tiên trong chuỗi cha tính từ vị trí đã cho trước. Hoặc nếu chuỗi con không tồn tại sẽ trả về -1.
Cú pháp:
int indexOf(String str, int string_start)
Trong đó:
-
string: chuỗi con cần tìm vị trí
-
string_start: vị trí để bắt đầu tìm kiếm trong chuỗi cha.
Ví dụ: Tìm chỉ mục của chuỗi con “ph
” tính từ ví trí thứ 11 trong chuỗi “Hà Nội 36 phố phường
”
package indexOf;
public class IndexOfExample {
public static void main(String args[]) {
// Khởi tạo chuỗi mẫu và chuỗi con
String indexString = new String("Hà Nội 36 phố phường");
String sub_string = "ph";
// In ra vị trí đầu tiên của 'ph' trong tính từ vị trí 11
System.out.println(indexString.indexOf(sub_string, 11)); // 14
}
}
Ngoài ra, bạn có thể sử dụng phương thức indexOf ở một mức độ nâng cao hơn. Chẳng hạn như kiểm tra xem một ký tự nào đó có phải một nguyên âm hay là không?
package indexOf;
public class IndexOfExample {
public static void main(String[] args) {
boolean isVowel = Vowel('U');
if (isVowel) {
System.out.println("Là nguyên âm.");
} else {
System.out.println("Không phải nguyên âm.");
}
public static boolean Vowel(char c) {
return "AEIOUaeiou".indexOf(c) >= 0;
}
}
}
Với bốn biến thể cơ bản, indexOf hầu như có thể giúp bạn xây dựng các tính năng cao hơn, phức tạp hơn cho các hoạt động xử lý liên quan đến chuỗi.
Trong thực tế, để hiểu sâu hơn về cách hoạt động của indexOf, bạn hãy thử thay thế các vị trí cho trước để xem kết quả khác nhau như thế nào, nếu được hãy kết hợp với các phương thức các bạn đã biết để giúp code của mình trở nên ngầu hơn.
Chúc mừng bạn đã hiểu rõ về phương thức indexOf trong Java.
Mặc dù đơn giản nhưng hầu hết các dự án lớn trong thực tế đều sử dụng phương thức indexOf ở một vai trò cụ thể nào đó.
Nhất là đối với các loại dữ liệu về chuỗi thì indexOf chưa bao giờ bị lãng quên bởi các lập trình viên Java.
Như đã nói bên trên, để phát huy hết vai trò và sức mạnh của mình, indexOf thường hay được sử dụng kết hợp với các phương thức cơ bản khác để cấu thành nên những funtion phức tạp mà các bạn hay nhìn thấy ở những dự án lớn – mấy cái phức tạp vốn là cộng hưởng của những thứ đơn giản mà ra đấy.
> Trong khóa học lập trình Java mình hướng dẫn, mình cũng nói với các học viên rằng, cơ bản mới quan trọng, phải chắc phần cơ bản, phần móng thì nhà tuyển dụng mới săn đón. Công nghệ, framework là điều kiện đủ mà thôi.
Mình tin rằng kiến thức được cung cấp trong bài viết này đủ để các bạn hiểu và sử dụng indexOf trong Java phục vụ cho nhu cầu code hằng ngày một cách thuần thục rồi.
Nếu có khó khăn gì hãy xem đi xem lại các phần ví dụ cụ thể và rõ ràng bên trên bạn nhé.
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Dạy học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543 - 0353655150
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python