JavaRush /Blog Java /Random-VI /Phương thức IndexOf của lớp String: tại sao cần thiết và ...

Phương thức IndexOf của lớp String: tại sao cần thiết và cách thức hoạt động

Xuất bản trong nhóm
Xin chào! Các lập trình viên thường sử dụng các phương thức một cách tự động mà không cần suy nghĩ về cách chúng hoạt động. Đây là những kỹ thuật cơ bản mà bạn phải biết.

Quá tải phương thức là gì?

Trước khi xem xét phương thức được đề cập trong tiêu đề, chúng ta hãy nhớ (và ai đó sẽ biết) nạp chồng phương thức là gì. Nạp chồng phương thức Java cho phép hai hoặc nhiều phương thức có cùng tên được định nghĩa trong cùng một lớp. Điều này chỉ có thể thực hiện được nếu chúng có các tham số đầu vào khác nhau. Trong trường hợp này, các phương thức được gọi là quá tải và bản thân quá trình đó được gọi là nạp chồng phương thức. Phương thức IndexOf của lớp String: tại sao cần và cách thức hoạt động - 1Nạp chồng phương thức là một trong những nguyên tắc cơ bản của đa hình trong Java.

indexOfPhương thức lớp dùng để làm gì ?String

Hãy tưởng tượng bạn có một chuỗi dài. Ví dụ: một lá thư, và bạn cần tìm nơi diễn ra địa chỉ đầu tiên của người nhận bằng một cái tên mà bạn đã biết. Làm thế nào bạn sẽ làm điều này? Sử dụng phương thức indexOf javalớp String. Phương thức này là một ví dụ điển hình về nạp chồng phương thức mà chúng ta đã thảo luận ở trên.

Tùy chọn phương phápindexOf

Phương pháp này java string indexOfcó bốn biến thể khác nhau:

Số 1.indexOf(int ch)

Phương thức int indexOf(int ch)trả về chỉ mục trong chuỗi đã cho về lần xuất hiện đầu tiên của ký tự được chỉ định. Nói cách khác, chúng ta sẽ nhận được số lần xuất hiện đầu tiên của một ký tự cho trước, tính từ trái sang phải. Ví dụ:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Đầu ra của bảng điều khiển:

2
Nếu ký tự chúng ta đang tìm không có trong dòng này, chúng ta sẽ nhận được -1.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Đầu ra của bảng điều khiển:

-1
Tái bút Để không nhầm lẫn bất cứ điều gì, bạn không được quên rằng các ký tự trong một dòng không được tính từ “1,2,3…” mà từ “0,1,2…”

Số 2.indexOf(int ch, int fromIndex)

Phương thức int indexOf(int ch, int fromIndex)trả về chỉ mục trong chuỗi này với lần xuất hiện đầu tiên của ký tự được chỉ định, bắt đầu tìm kiếm tại chỉ mục đã chỉ định. Phương pháp này là một phiên bản hiện đại hơn của phương pháp trước. Sự khác biệt là chúng tôi chỉ ra số phần tử mà từ đó việc tìm kiếm sẽ thực sự bắt đầu. Ví dụ:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Đầu ra của bảng điều khiển:

9
Nếu chỉ mục mà việc tìm kiếm sẽ được tiến hành vượt quá độ dài của chuỗi thì câu trả lời sẽ là -1. Phương thức IndexOf của lớp String: tại sao cần và cách thức hoạt động - 2Như bạn có thể nhận thấy, trong chữ ký của hai phương thức này (phương thức lấy làm đối số), loại ký hiệu được truyền được chỉ định là int, không phải char. Tuy nhiên, chúng tôi đã truyền tải char. Điều này là do các chuỗi được lưu trữ dưới dạng mảng byte, trong đó các ô tương ứng với một ký tự cụ thể thuộc loại char. Sự tương ứng giữa các byte charđược thực hiện theo bảng ASCII. ASCII (Mã tiêu chuẩn Mỹ để trao đổi thông tin) là một bảng ánh xạ các ký tự in được và không in được phổ biến thành mã số. Vì vậy, khi truyền vào một ký tự nào đó char, nó sẽ tự động được chuyển đổi thành một số đại diện cho ký tự đó trong bảng ASCII. Dựa vào điều này, chúng ta có thể truyền trực tiếp số ( int) vào phương thức, tương ứng với ký tự chúng ta cần. Ví dụ: ký tự 'e' trong bảng ASCII tương ứng với số 101, vì vậy chúng ta có thể lặp lại ví dụ trước nhưng không có char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Đầu ra bảng điều khiển của chúng tôi không thay đổi:

9
Tái bút Trong một số trường hợp, các phương thức này có thể thay thế cho nhau, chẳng hạn như str.indexOf('e');nó sẽ giống nhau - str.indexOf('e', 0);.

Số 3.indexOf(String str)

Phương thức int indexOf(String str)trả về chỉ mục trong hàng đã cho về lần xuất hiện đầu tiên của chuỗi con đã chỉ định. Về cơ bản, nó khác với tùy chọn đầu tiên ở chỗ phương thức này đã tìm kiếm toàn bộ chuỗi con ( String). Nhờ điều này, chúng ta có thể tìm kiếm điều gì đó cụ thể hơn. Ví dụ:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
Đầu ra của bảng điều khiển:

0
PS Tất cả các biến thể indexOfđều phân biệt chữ hoa chữ thường: ký tự chữ hoa (chữ in hoa) và ký tự chữ thường (chữ nhỏ) được coi là khác nhau. Hãy cẩn thận.

Số 4.indexOf(String str, int fromIndex)

Phương thức indexOf(String str, int fromIndex)trả về chỉ mục trong hàng này về lần xuất hiện đầu tiên của chuỗi con đã chỉ định, bắt đầu từ chỉ mục đã chỉ định. Tùy chọn này lại là một tùy chọn trước đây được hiện đại hóa hơn, nhưng có chỉ dẫn về địa điểm mà việc tìm kiếm sẽ được tiến hành. Ví dụ:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
Đầu ra của bảng điều khiển:

26
Tái bút Nếu bạn chỉ định chỉ mục bắt đầu âm, phương thức indexOfsẽ coi nó là 0. Trong trường hợp này, phương thức sẽ lại tương tự như phương thức trước đó (trong đó chỉ mục bắt đầu không được chỉ định). Đó là tất cả cho ngày hôm nay. Bây giờ bạn có thêm kiến ​​thức nhờ indexOfJava!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION