Садржај

Методи за рад са стринговима

Стрингови (ниске) су као појам објашњени у у Петљином курсу за први разред. Тамо је било речи о двојакој природи стрингова.

  • Стрингови посматрани као целине су уведени у лекцији Текстуални подаци (стрингови, ниске). У тој лекцији је објашњено свосјтво Length и методи Split, IndexOf, Substring, ToLower, ToUpper.

  • Особине стрингова по којима они личе на низове карактера су описане у лекцијама Стринг и низ карактера и Трансформисање стрингова. Ту је било речи о употреби индекса, о понашању стрингова као аргумената метода и о трансформацијама стрингова са освртом на ефикасност.

Препоручујемо читаоцима да се подсете садржаја поменутих лекција из курса за први разред, пре него што наставе са читањем.

Сада ћемо наше разумевање синтаксе и семантике стрингова да употпунимо новим детаљима.

Пре свега напоменимо да је у језику C# кључна реч string синоним (алијас) за System.String. У програмима можемо уместо System.String да пишемо и само String, ако пре тога најавимо употребу именског простора System наредбом using System;. Записи string и System.String су потпуно равноправни и између њих нема никакве разлике. Ми ћемо у декларацијама стрингова да користимо запис string, као и до сада. При томе свакако имамо на уму да су тако декларисани стрингови у ствари објекти класе String, која је део стандардне библиотеке .Net.

Начин позивања метода за рад са стринговима

  • Методи инстанце: Већина метода за рад са стринговима се позива користећи синтаксу облика s.Metod(...), где је s неки стринг (а уместо тачкица стоје одговарајући параметри, ако их има). Такви методи нису статички методи (методи класе), него методи инстанце, односно методи појединачног, конкретног стринга. На пример, s2 = s1.ToUpper();, или s2 = s1.Trim();, где су s1 и s2 стрингови. Методе инстанце називамо и нестатичким методима. Код нестатичких метода стринг s1 називамо текућа инстанца стринга.

  • Статички методи: Поред метода инстанце (нестатичких метода), постоје и статички методи, који се позивају користећи синтаксу облика System.String.Metod(...) (или string.Metod(...)). Такав је, на пример, метод String.Compare. Ми ћемо користити запис облика String.Metod(...) са великим S, уз употребу наредбе using System; на почетку програма. Ово је уобичајени начин писања у C# заједници, а таквим писањем се додатно истиче чињеница да се ради о (статичким) методима класе String.

  • Двојни методи: Неки методи, попут метода Equals могу да се позивају на оба начина (String.Equals(s1, s2) и s1.Equals(s2)). Тачније речено, постоји дублет истоимених метода, од којих је један статички, а други нестатички. Наравно, ако користимо нестатички метод (други запис), стринг s1 не сме да буде null, јер у противном програм пуца уз поруку NullReferenceException.

Класа string (тј. System.String) има заиста велики број метода, па детаљно описивање сваке варијанте сваког од тих метода у овом курсу не би имало смисла. Овде ћемо ради прегледа само да набројимо често коришћене методе и дамо њихове кратке описе.

Преглед често коришћених метода за рад са стринговима

  • Поређење стрингова

    • String.Equals: проверава да ли су два стринга једнака (може да поистовети мала и велика слова)

    • String.Compare: проверава који од два стринга претходи другом у сортираном редоследу (могућа су детаљна подешавања поређења)

    • StartsWith: проверава да ли текућа инстанца стринга почиње наведеним карактером или стрингом

    • EndsWith: проверава да ли текућа инстанца стринга завршава наведеним карактером или другим стрингом

  • Претраживање стрингова

    • Contains: проверава да ли текућа инстанца стринга садржи наведени карактер или стринг

    • IndexOf: враћа позицију првог појављивања датог карактера или стринга у текућој инстанци стринга

    • IndexOfAny: враћа позицију првог појављивања било ког од наведених карактера у текућој инстанци стринга

    • LastIndexOf: враћа позицију последњег појављивања датог карактера или стринга у текућој инстанци стринга

    • LastIndexOfAny: враћа позицију последњег појављивања било ког од наведених карактера у текућој инстанци стринга

  • Провера постојања садржаја стринга

    • String.IsNullOrEmpty: проверава да ли је дати стринг неалоциран (null) или празан

    • String.IsNullOrWhiteSpace: проверава да ли је дати стринг неалоциран, празан, или садржи само белине

  • Tрансформисање стрингова

    • Insert: враћа нови стринг, добијен уметањем задатог стринга на одређеној позицији у текућу инстанцу стринга.

    • Remove: враћа нови стринг, добијен брисањем задатог броја знакова из текуће инстанце стринга, са задате позиције.

    • PadLeft: враћа нови стринг одређене дужине, добијен допуњавањем слева текуће инстанце стринга размацима или задатим карактером.

    • PadRight: враћа нови стринг одређене дужине, добијен допуњавањем здесна текуће инстанце стринга размацима или задатим карактером.

    • Substring: враћа подстринг текуће инстанце стринга, почевши од дате позиције. Може да се зада дужина подстринга, а ако се не зада, подразумева се максимална дужина.

    • Trim: враћа нови стринг, добијен уклањањем сваког од наведених карактера са почетка и са краја текуће инстанце стринга.

    • TrimEnd: враћа нови стринг, добијен уклањањем сваког од наведених карактера са краја текуће инстанце стринга.

    • TrimStart: враћа нови стринг, добијен уклањањем сваког од наведених карактера са почетка текуће инстанце стринга.

    • ToLower: враћа нови стринг, добијен заменом свих великих слова текуће инстанце стринга у одговарајућа мала слова.

    • ToUpper: враћа нови стринг, добијен заменом свих малих слова текуће инстанце стринга у одговарајућа велика слова.

    • Replace: враћа нови стринг, добијен заменом сваког појављивања задатог карактера или стринга у текућој инстанци стринга другим задатим карактером или стрингом.

    • ToCharArray: копира знакове текуће инстанце стринга у низ карактера (и враћа тај низ као резултат).

    • Split: враћа низ стрингова који садржи подстрингове текуће инстанце стринга, разграничене елементима датог стринга или низа карактера.

    • String.Join: враћа стринг, добијен спајањем елемената наведеног низа (или сличне колекције) и убацивањем наведеног знака или стринга на сваком месту спајања, тј. између свака два узастопна елемента који се спајају.

Често је већ из овог кратког описа (па чак и из самог имена метода) јасно чему одређени метод служи и како се користи. У већини случајева ово је сасвим довољно за основну употребу, јер и окружење Visual Studio приликом писања програма пружа изузетно добру подршку у комплетирању имена метода, навођењу параметара и слично. Ако неки метод не можете да нађете кроз помоћ коју нуди развојно окружење, можете да се вратите на ове описе док решавате задатке и овде пронађете метод који вам је потребан у програму. Уколико је за неки од метода потребно више информација, оне лако могу да се пронађу на интернету, нпр. на страници String Class званичне документације библиотеке .NET.

У наставку ћемо нешто детаљније да прођемо кроз наведене методе по групама и да илуструјемо примерима неке могућности и важне начине употребе појединих, одабраних метода.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+