JavaRush /Java Blog /Random-TK /String synpynyň IndexOf usuly: näme üçin zerur we nähili ...

String synpynyň IndexOf usuly: näme üçin zerur we nähili işleýär

Toparda çap edildi
Salam! Programmistler köplenç işleýşi hakda pikir etmän usullary awtomatiki ulanýarlar. Bular bilmeli esasy usullar.

Artykmaç ýüklemek usuly näme?

Adynda agzalan usula göz aýlamazdan ozal, aşa ýüklemegiň haýsy usulydygyny ýadymyzdan çykaralyň (we kimdir biri biler). Java usuly artykmaç ýüklemek, bir klasda şol bir at bilen iki ýa-da has köp usuly kesgitlemäge mümkinçilik berýär. Bu diňe dürli giriş parametrleri bolan ýagdaýynda mümkindir. Bu ýagdaýda usullara artykmaç ýük diýilýär we prosesiň özi artykmaç ýüklemek usuly diýilýär. Usuly artykmaç ýüklemek Java-da polimorfizmiňSetir synpynyň IndexOf usuly: näme üçin zerur we nähili işleýär - 1 esasy ýörelgelerinden biridir .

indexOfSynp usuly näme ?String

Uzyn setiriň bardygyny göz öňüne getiriň. Mysal üçin, bir hat, we adresçä ilkinji salgysynyň eýýäm bilýän adyňyz bilen bolýan ýerini tapmaly. Muny nädip eder? indexOf javaSynp usulyny ulanyň String. Bu usul, ýokarda ara alyp maslahatlaşan usulymyzdan artykmaç ýüklemegiň adaty mysalydyr.

Usul görnüşleriindexOf

Usul java string indexOfdört dürli üýtgeşiklige eýe:

No. 1indexOf(int ch)

Usul, int indexOf(int ch)görkezilen simwolyň ilkinji gezek ýüze çykan setirinde indeksini gaýtaryp berýär. Başgaça aýdylanda, çepden saga sanap, berlen nyşanlaryň ilkinji ýüze çykmagynyň sanyny alarys. Mysal:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Konsol çykyşy:

2
Gözleýän häsiýetimiz şu setirde bolmasa, -1 alarys.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Konsol çykyşy:

-1
PS Hiç zady bulaşdyrmazlyk üçin, setirdäki nyşanlaryň “1,2,3 ...” däl-de, “0,1,2 ...” hasaplanýandygyny ýatdan çykarmaly däl.

No.2indexOf(int ch, int fromIndex)

Usul, int indexOf(int ch, int fromIndex)görkezilen görkezijide gözleg başlap, görkezilen simwolyň ilkinji ýüze çykmagynyň bu setirinde indeksini gaýtaryp berýär. Bu usul öňküsiniň has döwrebaplaşdyrylan görnüşidir. Tapawut, gözlegiň hakykatda başlajak elementiniň sanyny görkezýäris. Mysal:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Konsol çykyşy:

9
Gözlegiň geçiriljek görkezijisi setiriň uzynlygyndan ýokary bolsa, jogap -1 bolar. Setir synpynyň IndexOf usuly: näme üçin zerur we nähili işleýär - 2Üns berşiňiz ýaly, bu iki usulyň golunda (usullar argument hökmünde kabul edilýär), nyşanyň geçýän görnüşi intdäl-de, görkezilýär char. Şeýle-de bolsa, iberdik char. Sebäbi setirler baýt massiwinde saklanýar, bu ýerde öýjükler belli bir görnüşe laýyk gelýär char. Baýtlaryň arasyndaky hat alyşma charASCII tablisasyna laýyklykda amala aşyrylýar. ASCII (maglumat alyşmak üçin Amerikanyň standart kody) umumy çap edilip bilinmeýän we çap edilmeýän nyşanlary san kodlaryna kartalaşdyrýan tablisadyr. Şonuň üçin belli bir nyşan geçende char, awtomatiki usulda ASCII tablisasyndaky şol nyşany görkezýän sana öwrülýär. intŞundan ugur alyp, ( ) belgini zerur belgä laýyk gelýän usula gönüden-göni geçirip bileris . Mysal üçin, ASCII tablisasyndaky 'e' nyşany 101 belgisine gabat gelýär, şonuň üçin öňki mysaly gaýtalap bileris, ýöne char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Konsol çykyşymyz üýtgemedi:

9
PS Käbir ýagdaýlarda bu usullar çalşylýar, mysal üçin str.indexOf('e');meňzeş bolar - str.indexOf('e', 0);.

No. 3indexOf(String str)

Usul int indexOf(String str)görkezilen substringiň ilkinji ýüze çykmagynyň berlen hatarynda indeksini gaýtaryp berýär. Birinji wariantdan düýpgöter tapawutlanýar, sebäbi bu usul eýýäm tutuş bir substringi gözleýär ( String). Munuň netijesinde has anyk bir zady gözläp bileris. Mysal:
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);
}
Konsol çykyşy:

0
PS varihli üýtgeýişler indexOfbaş harp bilen ýazylýar: baş harplar (baş harplar) we kiçi harplar (kiçi harplar) başgaça hasaplanýar. Seresap boluň.

No. 4indexOf(String str, int fromIndex)

Usul, indexOf(String str, int fromIndex)görkezilen indeksden başlap, görkezilen substringiň ilkinji ýüze çykmagynyň bu hataryndaky görkezijini yzyna gaýtaryp berýär. Bu opsiýa ýene-de has döwrebaplaşdyrylan wariant, ýöne gözlegiň geçiriljek ýerini görkezmek bilen. Mysal:
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);
}
Konsol çykyşy:

26
PS negativearamaz başlangyç indeksini görkezseňiz, usul indexOfony 0 hökmünde kabul eder. Bu ýagdaýda usul ýene öňki görnüşine meňzeýär (başlangyç görkezijisi görkezilmedik). Hemmesi şu gün üçin. Indi Java-yň kömegi bilen has köp bilimiňiz bar indexOf!
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION