JavaRush /Java Blog /Random-TL /IndexOf method ng String class: bakit ito kailangan at ku...

IndexOf method ng String class: bakit ito kailangan at kung paano ito gumagana

Nai-publish sa grupo
Kamusta! Ang mga programmer ay kadalasang gumagamit ng mga pamamaraan nang awtomatiko, nang hindi iniisip kung paano gumagana ang mga ito. Ito ang mga pangunahing pamamaraan na dapat mong malaman.

Ano ang paraan ng overloading?

Bago natin tingnan ang paraan na binanggit sa pamagat, tandaan natin (at may makakaalam) kung ano ang paraan ng overloading. Ang Java method overloading ay nagbibigay-daan sa dalawa o higit pang mga pamamaraan na may parehong pangalan na matukoy sa loob ng parehong klase. Posible lamang ito kung mayroon silang iba't ibang mga parameter ng pag-input. Sa kasong ito, ang mga pamamaraan ay tinatawag na overloaded, at ang proseso mismo ay tinatawag na method overloading. Ang paraan ng IndexOf ng klase ng String: bakit ito kinakailangan at kung paano ito gumagana - 1Ang overloading ng pamamaraan ay isa sa mga pangunahing prinsipyo ng polymorphism sa Java.

Para saan ang paraan ng indexOfklase ?String

Isipin na mayroon kang mahabang string. Halimbawa, isang liham, at kailangan mong hanapin ang lugar kung saan nagaganap ang unang address sa addressee sa pamamagitan ng isang pangalan na alam mo na. Paano mo ito gagawin? Gamitin ang paraan ng indexOf javaklase String. Ang pamamaraang ito ay isang tipikal na halimbawa ng overloading ng pamamaraan, na tinalakay natin sa itaas.

Mga pagpipilian sa pamamaraanindexOf

Ang pamamaraan java string indexOfay may apat na magkakaibang mga pagkakaiba-iba:

No. 1.indexOf(int ch)

Ibinabalik ng pamamaraan int indexOf(int ch)ang index sa ibinigay na string ng unang paglitaw ng tinukoy na character. Sa madaling salita, makukuha natin ang bilang ng unang paglitaw ng isang naibigay na karakter, na binibilang mula kaliwa hanggang kanan. Halimbawa:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Output ng console:

2
Kung ang karakter na hinahanap natin ay wala sa linyang ito, makakakuha tayo ng -1.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Output ng console:

-1
PS Upang hindi malito ang anuman, hindi mo dapat kalimutan na ang mga character sa isang linya ay binibilang hindi mula sa "1,2,3...", ngunit mula sa "0,1,2..."

No. 2.indexOf(int ch, int fromIndex)

Ibinabalik ng pamamaraan int indexOf(int ch, int fromIndex)ang index sa string na ito ng unang paglitaw ng tinukoy na character, na nagsisimula ng paghahanap sa tinukoy na index. Ang pamamaraang ito ay isang mas modernisadong bersyon ng nauna. Ang pagkakaiba ay ipinapahiwatig namin ang bilang ng elemento kung saan aktwal na magsisimula ang paghahanap. Halimbawa:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Output ng console:

9
Kung ang index kung saan isasagawa ang paghahanap ay lumampas sa haba ng string, ang sagot ay magiging -1. IndexOf method ng String class: bakit ito kailangan at kung paano ito gumagana - 2Tulad ng napansin mo, sa lagda ng dalawang pamamaraang ito (kung ano ang kinukuha ng mga pamamaraan bilang mga argumento), ang uri para sa ipinasa na simbolo ay tinukoy bilang int, hindi char. Gayunpaman, ipinadala namin ang char. Ito ay dahil ang mga string ay naka-imbak bilang isang byte array, kung saan ang mga cell ay tumutugma sa isang partikular na character ng uri char. Ang pagsusulatan sa pagitan ng mga byte charay isinasagawa ayon sa talahanayan ng ASCII. Ang ASCII (American standard code para sa pagpapalitan ng impormasyon) ay isang talahanayan na nagmamapa ng mga karaniwang napi-print at hindi napi-print na mga character sa mga numerong code. Samakatuwid, kapag naipasa ang isang partikular na character char, awtomatiko itong nako-convert sa isang numero na kumakatawan sa character na iyon sa talahanayan ng ASCII. Batay dito, maaari nating direktang ipasa ang numero ( int) sa pamamaraan, na tumutugma sa karakter na kailangan natin. Halimbawa, ang character na 'e' sa talahanayan ng ASCII ay tumutugma sa numerong 101, kaya maaari nating ulitin ang nakaraang halimbawa, ngunit wala ang char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Hindi nagbago ang output ng aming console:

9
PS Sa ilang mga kaso, ang mga pamamaraan na ito ay mapagpapalit, bilang halimbawa str.indexOf('e');ito ay magiging katulad - str.indexOf('e', 0);.

No. 3.indexOf(String str)

Ibinabalik ng pamamaraan int indexOf(String str)ang index sa ibinigay na row ng unang paglitaw ng tinukoy na substring. Sa panimula ito ay naiiba sa unang opsyon dahil ang paraang ito ay naghahanap na ng isang buong substring ( String). Dahil dito, maaari tayong maghanap ng mas tiyak. Halimbawa:
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);
}
Output ng console:

0
PS Lahat ng variation indexOfay case sensitive: ang mga malalaking titik (mga malalaking titik) at maliliit na mga character (maliit na titik) ay itinuturing na iba. Mag-ingat ka.

No. 4.indexOf(String str, int fromIndex)

Ibinabalik ng pamamaraan indexOf(String str, int fromIndex)ang index sa row na ito ng unang paglitaw ng tinukoy na substring, simula sa tinukoy na index. Ang pagpipiliang ito ay muli isang mas modernisadong nakaraang opsyon, ngunit may indikasyon ng lugar kung saan isasagawa ang paghahanap. Halimbawa:
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);
}
Output ng console:

26
PS Kung tumukoy ka ng isang negatibong index ng pagsisimula, ang pamamaraan indexOfay makikita ito bilang 0. Sa kasong ito, ang pamamaraan ay muling magiging katulad ng nauna (kung saan ang panimulang index ay hindi tinukoy). Para sa araw na ito ang lahat. Ngayon ay mayroon kang higit na kaalaman salamat sa indexOfJava!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION