JavaRush /Java блогы /Random-KK /String класының IndexOf әдісі: ол не үшін қажет және ол қ...

String класының IndexOf әдісі: ол не үшін қажет және ол қалай жұмыс істейді

Топта жарияланған
Сәлеметсіз бе! Бағдарламашылар көбінесе әдістерді олардың қалай жұмыс істейтінін ойламай, автоматты түрде пайдаланады. Бұл сіз білуіңіз керек негізгі әдістер.

Әдістің шамадан тыс жүктелуі дегеніміз не?

Тақырыпта айтылған әдісті қарастырмас бұрын, шамадан тыс жүктеу әдісінің қандай екенін еске түсірейік (және біреу біледі). Java әдісін шамадан тыс жүктеу бір сынып ішінде бірдей атаумен екі немесе одан да көп әдістерді анықтауға мүмкіндік береді. Бұл олардың кіріс параметрлері әртүрлі болған жағдайда ғана мүмкін болады. Бұл жағдайда әдістер шамадан тыс жүктелген деп аталады, ал процестің өзі әдісті шамадан тыс жүктеу деп аталады. Әдісті шамадан тыс жүктеу Java тіліндегі полиморфизмніңString класының IndexOf әдісі: ол не үшін қажет және ол қалай жұмыс істейді - 1 негізгі принциптерінің бірі болып табылады .

indexOfКласс әдісі не үшін қажет?String

Сізде ұзын жіп бар деп елестетіп көріңіз. Мысалы, хат, және сіз addressтқа бірінші мекенжай бұрыннан білетін атаумен орын алатын орынды табуыңыз керек. Мұны қалай істейсіз? indexOf javaКласс әдісін қолданыңыз String. Бұл әдіс әдісті шамадан тыс жүктеудің типтік мысалы болып табылады, біз оны жоғарыда қарастырдық.

Әдіс опцияларыindexOf

Әдістің java string indexOfтөрт түрлі нұсқасы бар:

№1.indexOf(int ch)

Әдіс int indexOf(int ch)көрсетілген таңбаның бірінші пайда болуының берілген жолындағы индексті қайтарады. Басқаша айтқанда, солдан оңға қарай санау арқылы берілген таңбаның бірінші рет кездесетін нөмірін аламыз. Мысалы:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Консоль шығысы:

2
Егер біз іздеген кейіпкер осы жолда болмаса, біз -1 аламыз.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Консоль шығысы:

-1
PS Ештеңені шатастырмау үшін жолдағы таңбалар «1,2,3...» емес, «0,1,2...» бастап есептелетінін ұмытпау керек.

№ 2.indexOf(int ch, int fromIndex)

Әдіс int indexOf(int ch, int fromIndex)көрсетілген индексте іздеуді бастап, көрсетілген таңбаның бірінші пайда болуының осы жолындағы индексті қайтарады. Бұл әдіс алдыңғысының неғұрлым жаңартылған нұсқасы болып табылады. Айырмашылығы мынада, біз іздеу нақты басталатын элементтің нөмірін көрсетеміз. Мысалы:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Консоль шығысы:

9
Егер іздеу жүргізілетін индекс жолдың ұзындығынан асып кетсе, онда жауап -1 болады. String класының IndexOf әдісі: ол не үшін қажет және қалай жұмыс істейді - 2Байқағаныңыздай, осы екі әдістің қолтаңбасында (әдістер аргумент ретінде қабылдайды) жіберілетін таңбаның түрі ретінде intемес, көрсетілген char. Дегенмен, біз жібердік char. Себебі жолдар byte массиві ретінде сақталады, мұнда ұяшықтар түрінің белгілі бір таңбасына сәйкес келеді char. Байттар арасындағы сәйкестік charASCII кестесі бойынша жүзеге асырылады. ASCII (ақпарат алмасуға арналған американдық стандартты code) — жалпы басып шығарылатын және басып шығарылмайтын таңбаларды сандық codeтармен салыстыратын кесте. Сондықтан, белгілі бір таңба жіберілгенде char, ол автоматты түрде ASCII кестесіндегі сол таңбаны көрсететін санға түрлендіріледі. Осының негізінде intбізге қажетті таңбаға сәйкес келетін әдіске ( ) санын тікелей беруге болады. Мысалы, ASCII кестесіндегі 'e' таңбасы 101 санына сәйкес келеді, сондықтан біз алдыңғы мысалды қайталай аламыз, бірақ char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Біздің консоль шығысы өзгерген жоқ:

9
PS Кейбір жағдайларда бұл әдістер бір-бірін алмастырады, мысалы, str.indexOf('e');ол ұқсас болады - str.indexOf('e', 0);.

№3.indexOf(String str)

Әдіс int indexOf(String str)көрсетілген ішкі жолдың бірінші пайда болуының берілген жолындағы индексті қайтарады. Бұл бірінші нұсқадан түбегейлі ерекшеленеді, өйткені бұл әдіс бүкіл ішкі жолды ( ) іздейді String. Осының арқасында біз нақтырақ нәрсені іздей аламыз. Мысалы:
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);
}
Консоль шығысы:

0
PS Барлық нұсқалар indexOfрегистрді ескереді: бас әріптер (бас әріптер) және кіші әріптер (кіші әріптер) әр түрлі болып саналады. Сақ болыңыз.

№ 4.indexOf(String str, int fromIndex)

Әдіс indexOf(String str, int fromIndex)көрсетілген индекстен бастап көрсетілген ішкі жолдың бірінші пайда болуының осы жолындағы индексті қайтарады. Бұл опция қайтадан модернизацияланған алдыңғы нұсқа болып табылады, бірақ іздеу жүргізілетін орынды көрсетумен. Мысалы:
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);
}
Консоль шығысы:

26
PS Теріс басталу индексін көрсетсеңіз, әдіс indexOfоны 0 ретінде қабылдайды. Бұл жағдайда әдіс қайтадан бұрынғыға ұқсас болады (бастау индексі көрсетілмеген). Мұның бәрі бүгінгі күн үшін. Енді сізде Java арқасында көбірек білім бар indexOf!
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION