{"id":1150,"date":"2020-04-12T21:22:13","date_gmt":"2020-04-12T19:22:13","guid":{"rendered":"http:\/\/www.daniel.slask.pl\/?p=1150"},"modified":"2021-02-12T20:21:50","modified_gmt":"2021-02-12T19:21:50","slug":"sposoby-edycji-stringow-w-c-modyfikacja-i-praca","status":"publish","type":"post","link":"https:\/\/daniel.slask.pl\/m\/sposoby-edycji-stringow-w-c-modyfikacja-i-praca\/","title":{"rendered":"Sposoby edycji string\u00f3w w C# &#8211; modyfikacja i praca"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>Podczas pracy na stringach nie jeden raz b\u0119dziemy zmuszeniu do edycji tych danych. Oboj\u0119tnie czy s\u0105 to dane przez nas wprowadzane na bie\u017c\u0105co w programie, czy tworzone w tym programie. W tym wpisie przedstawi\u0119 i postaram si\u0119 om\u00f3wi\u0107 wi\u0119kszo\u015b\u0107 metod umo\u017cliwiaj\u0105cych prac\u0119 na stringach.<\/p>\n\n\n\n<ul><li><em>Chars<\/em><\/li><\/ul>\n\n\n\n<p>W\u0142a\u015bciwo\u015bci\u0105 t\u0105 pobieramy pojedynczy znak z podanego indeksu.<\/p>\n\n\n\n<ul><li><em>Length<\/em><\/li><\/ul>\n\n\n\n<p>Aby dowiedzie\u0107 si\u0119 ile znak\u00f3w zawiera dane wyra\u017cenie wykorzystamy podan\u0105 w\u0142a\u015bciwo\u015b\u0107 Stringa.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">int dlugosc = obiekt_string.Length;<\/code><\/pre>\n\n\n\n<ul><li><em>Concat()<\/em><\/li><\/ul>\n\n\n\n<p>Podobnie jak operator <em>+<\/em>, metoda ta s\u0142u\u017cy do \u0142\u0105czenia dw\u00f3ch lub wi\u0119cej \u0142a\u0144cuch\u00f3w.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt_string = String.Concat(pierwszy_tekst, drugi_tekst);<\/code><\/pre>\n\n\n\n<ul><li><em>Contains()<\/em><\/li><\/ul>\n\n\n\n<p>W celu wyszukania danego wyra\u017cenia w danym \u0142a\u0144cuchu wykorzystamy metod\u0119 <em>Contains<\/em> &#8211; je\u017celi dane wyra\u017cenie zostanie odnalezione, zwr\u00f3c\u0105 ona warto\u015b\u0107 <em>true<\/em>, w przeciwnym wypadku <em>false<\/em>. Metoda ta rozr\u00f3\u017cnia wielko\u015b\u0107 liter, wi\u0119c nale\u017cy o tym pami\u0119ta\u0107 pisz\u0105c kod.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">bool czy_jest = obiekt_string.Contains(\"szukam\");<\/code><\/pre>\n\n\n\n<ul><li><em>Equals()<\/em><\/li><\/ul>\n\n\n\n<p>Metoda ta okre\u015bla czy oba podane ci\u0105gi maj\u0105 t\u0105 sam\u0105 warto\u015b\u0107, je\u017celi tak to zwraca <em>true<\/em>. Zwraca uwag\u0119 na wielko\u015b\u0107 znak\u00f3w.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">bool to_samo = obiekt_string.Equals(obiekt2_string);<\/code><\/pre>\n\n\n\n<ul><li><em>Format()<\/em><\/li><\/ul>\n\n\n\n<p>Konwertuje warto\u015bci wstawianych obiekt\u00f3w i wstawia je do innego ci\u0105gu znak\u00f3w.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">String obiekt_string = String.Format(\"To {0} jest cyfra dziesiec\", 10);<\/code><\/pre>\n\n\n\n<ul><li><em>Insert()<\/em><\/li><\/ul>\n\n\n\n<p>Metoda ta wstawia w dane miejsce \u017c\u0105dany ci\u0105g znak\u00f3w. Przyjmuje ona kilka parametr\u00f3w &#8211; pierwszym jest pozycja od kt\u00f3rej ma by\u0107 dodawany ci\u0105g znak\u00f3w, kt\u00f3ry zosta\u0142 wpisany jako drugi parametr.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt_string = obiekt_string.Insert(10, \"dodany ciag)\";<\/code><\/pre>\n\n\n\n<ul><li><em>Join()<\/em><\/li><\/ul>\n\n\n\n<p>\u0141\u0105czy elementy jednej tablicy w jeden ci\u0105g znak\u00f3w. Metoda ta przyjmuje dwa parametry &#8211; pierwszym jest znak rozdzielaj\u0105cy \u0142\u0105czone elementy, a drugim nazwa tablicy.<\/p>\n\n\n\n<ul><li><em>LastIndexOf()<\/em><\/li><\/ul>\n\n\n\n<p>Zwraca pozycj\u0119 ostatniego wyst\u0105pienia okre\u015blonego znaku lub ci\u0105gu w danym \u0142a\u0144cuchu.<\/p>\n\n\n\n<ul><li><em>Remove()<\/em><\/li><\/ul>\n\n\n\n<p>W celu usuni\u0119cia pewnego fragmentu ci\u0105gu znak\u00f3w wykorzystamy metod\u0119 <em>remove<\/em>. Parametry jakie przyjmuje to pocz\u0105tek i koniec ci\u0105gu znak\u00f3w, jaki ma zosta\u0107 usuni\u0119ty.<\/p>\n\n\n\n<ul><li><em>Replace()<\/em><\/li><\/ul>\n\n\n\n<p>Metoda <em>replace<\/em> podmienia \u017c\u0105dane elementy na inne. Przyjmuje dwa parametry, gdzie pierwszy okre\u015bla kt\u00f3ry element ma zosta\u0107 zmieniony, a drugi na jaki.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt_string = obiekt_string.Replace('a', 'b');<\/code><\/pre>\n\n\n\n<ul><li><em>Split()<\/em><\/li><\/ul>\n\n\n\n<p>Metoda ta dzieli podany ci\u0105g znak\u00f3w wed\u0142ug podanego separatora. Dzia\u0142a odwrotnie jak metoda <em>join()<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">String[] output = obiekt_string.Split('a');<\/code><\/pre>\n\n\n\n<p>Dodatkowo, split mo\u017ce zawiera\u0107 wi\u0119cej parametr\u00f3w wej\u015bciowych umo\u017cliwiaj\u0105cych lepsze skonfigurowanie wy\u0142uskiwania danych z ci\u0105gu znak\u00f3w. Po wi\u0119cej szczeg\u00f3\u0142\u00f3w na chwil\u0119 obecn\u0105 odnosz\u0119 do <a href=\"https:\/\/docs.microsoft.com\/pl-pl\/dotnet\/api\/system.string.split?view=netframework-4.8\">dokumentacji<\/a><\/p>\n\n\n\n<ul><li><em>Substring()<\/em><\/li><\/ul>\n\n\n\n<p>W celu skopiowania cz\u0119\u015bci znak\u00f3w danego ci\u0105gu, nale\u017cy u\u017cy\u0107 podanej metody z wpisaniem jako parametr pocz\u0105tkowej pozycji, od kt\u00f3rego maj\u0105 zosta\u0107 kopiowane znaki, oraz liczb\u0119 znak\u00f3w.<\/p>\n\n\n\n<ul><li><em>ToCharArray()<\/em><\/li><\/ul>\n\n\n\n<p>Kopiuje dany zakres znak\u00f3w do tablicy.<\/p>\n\n\n\n<ul><li><em>ToLower()<\/em><\/li><\/ul>\n\n\n\n<p>Metoda ta pozwala zmieni\u0107 wszystkie znaki na ma\u0142e.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt1_string = obiekt2_string.ToLower();<\/code><\/pre>\n\n\n\n<ul><li><em>ToString()<\/em><\/li><\/ul>\n\n\n\n<p>Konwertuje dany ci\u0105g na string.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt1_string = obiekt2_string.ToString();<\/code><\/pre>\n\n\n\n<ul><li><em>ToUpper()<\/em><\/li><\/ul>\n\n\n\n<p>Metoda ta pozwala zmieni\u0107 wszystkie znaki na du\u017ce.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt1_string = obiekt2_string.ToUpper();<\/code><\/pre>\n\n\n\n<ul><li><em>Trim()<\/em><\/li><\/ul>\n\n\n\n<p>Metod\u0105 t\u0105 usuwany bia\u0142e znaki znajduj\u0105ce si\u0119 na pocz\u0105tku i na ko\u0144cu danego \u0142a\u0144cucha znak\u00f3w.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt1_string = obiekt2_string.Trim('*', ' ');\nobiekt1_string = obiekt2_string.Trim();<\/code><\/pre>\n\n\n\n<ul><li><em>TrimEnd()<\/em><\/li><\/ul>\n\n\n\n<p>Aby usun\u0105\u0107 bia\u0142e znaki znajduj\u0105ce si\u0119 tylko na ko\u0144cu \u0142a\u0144cucha nale\u017cy wykorzysta\u0107 metod\u0119 <em>TrimEnd<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt1_string = obiekt2_string.TrimEnd('*', ' ');\nobiekt1_string = obiekt2_string.TrimEnd();<\/code><\/pre>\n\n\n\n<ul><li>TrimStart()<\/li><\/ul>\n\n\n\n<p>Je\u017celi chcemy usun\u0105\u0107 bia\u0142e znaki tylko na pocz\u0105tku danego \u0142a\u0144cucha znak\u00f3w u\u017cywamy tej metody &#8211; <em>TrimStart<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">obiekt1_string = obiekt2_string.TrimStart('*', ' ');\nobiekt1_string = obiekt2_string.TrimStart();<\/code><\/pre>\n\n\n\n<p>Aby utworzy\u0107 zmienn\u0105 typu string wykorzystujemy nast\u0119puj\u0105cy zapis:<\/p>\n\n\n\n<pre class=\"wp-block-code lang:c# decode:true\"><code lang=\"csharp\" class=\"language-csharp\">String obiekt_string = new String();<\/code><\/pre>\n\n\n\n<p>Pozosta\u0142e metody wraz z opisem klasy String mo\u017cna znale\u017a\u0107 w dokumentacji znajduj\u0105cej si\u0119 na stronie <a href=\"https:\/\/docs.microsoft.com\/pl-pl\/dotnet\/api\/system.string?view=netframework-4.8\">microsoftu<\/a><\/p>\n\n\n\n<p>Przepraszam za b\u0142\u0119dne nazywanie metod funkcjami, oraz stosowanie nieodpowiedniego nazewnictwa. Pozosta\u0142a nalecia\u0142o\u015b\u0107 z C, oraz C++. W razie b\u0142\u0119d\u00f3w prosz\u0119 o poprawianie mnie. Dzi\u0119ki za wyrozumia\u0142o\u015b\u0107.<\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Podczas pracy na stringach nie jeden raz b\u0119dziemy zmuszeniu do edycji tych danych. Oboj\u0119tnie czy s\u0105 to dane przez nas wprowadzane na bie\u017c\u0105co w programie, czy tworzone w tym programie. W tym wpisie przedstawi\u0119 i postaram si\u0119 om\u00f3wi\u0107 wi\u0119kszo\u015b\u0107 metod&#8230;<br \/><a class=\"read-more-button\" href=\"https:\/\/daniel.slask.pl\/m\/sposoby-edycji-stringow-w-c-modyfikacja-i-praca\/\">Wi\u0119cej<\/a><\/p>\n","protected":false},"author":1,"featured_media":1349,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[61,8,59],"tags":[33,195,191,193,66],"views":383,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2020\/04\/Csh.png","jetpack_shortlink":"https:\/\/wp.me\/pcPgV3-iy","_links":{"self":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1150"}],"collection":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/comments?post=1150"}],"version-history":[{"count":5,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1150\/revisions"}],"predecessor-version":[{"id":1615,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1150\/revisions\/1615"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/media\/1349"}],"wp:attachment":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/media?parent=1150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/categories?post=1150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/tags?post=1150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}