String.Split Method

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Alesh2020 14. 12. 2021 08:17

https://docs.microsoft.com/en-us/dotnet ... ew=net-6.0

Hmm, takže vaše představa by byla, když rozebírám cizí kód, si nejdřív najít a pročíst dokumentaci (viz odkaz v úvodu článku) a tak se pokusit najít definici toho, co mě "překvapilo".

Jenže jak mám např. zjistit, když mám toto
Kód: Vybrat vše
string[] znaky = s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
, co ten "StringSplitOptions.RemoveEmptyEntries" vlastně dělá, když je tam asi 35 míst, kde je ten příkaz zmíněn? :hm

(předtím tam bylo
Kód: Vybrat vše
string[] znaky = s.Split(' ');
, a co jsem se ptal člověka, co mi ten kód poskytl, tak to prej souvisí s odstraněním prázdných řetězců, které by mohly v navrácením poli vzniknout, pokud by tam člověk naťukal mezeru (při zadávání do dokumentace).

Opravdu, hloupý si nepřijdu, podle mě jsem spíš vzal celý ten problém za špatný konec. :hm
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 12. 2021 08:38

Tak to to dělá zjistíš opět nepřekvapivě v dokumentaci:
https://docs.microsoft.com/en-us/dotnet ... ew=net-6.0

Ale zrovna v tomhle případě se to dá poměrně s jistotou odhadnout už ze samotného názvu.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 14. 12. 2021 08:45

//double//
Naposledy upravil Alesh2020 dne 14. 12. 2021 08:52, celkově upraveno 2
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 12. 2021 08:47

Když to zjevné není, tak si holt přečteš tu dokumentaci.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 14. 12. 2021 08:52

Jo, ale to byl jen příklad, co mi padnul pod ruku. Jsou situace, kdy to tak zjevné není, a navíc, i tak musí člověk dodržovat náležitosti a správnou sintaxi. Člověk taky může fázi vést žlutozeleným drátem, taky to půjde, ale revizák se z toho pos*re. :hm

Jak jsem totiž pochopil, tak toto by způsobilo -
Kód: Vybrat vše
string[] znaky = s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
že kdybych to { ' ' } nahradil { 'a' }, { 'A' }, takže by to bylo:
Kód: Vybrat vše
string[] znaky = s.Split(new char[] { 'a' }, { 'A' }, StringSplitOptions.RemoveEmptyEntries);
, tak v případě, kdy zadám znak a nebo A, tak bude odstaněn... takže při zadání textu "AbBa" mi zbyde jen "bB"...
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 12. 2021 09:05

Tak jednak máš špatně syntaxi, jednak jsi nepochopil, k čemu slouží metoda Split. Takže vůbec nejde o ten druhý parametr.
Co třeba podle tebe dělá tohle?
Kód: Vybrat vše
string[] znaky = s.Split(';');
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 14. 12. 2021 09:11

Tak, kdybych měl např. string s
Kód: Vybrat vše
string s = "AA;bbb;cCc;";
tak příkaz
Kód: Vybrat vše
string[] znaky = s.Split(';');
by to "pole" rozdělil na jednotlivé prvky, přičemž ; by určovalo hranici dělení.

Takže bych měl:

string s1 ="aa"
string s2 = "bbb"
string s3 = "cCc"
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 12. 2021 09:19

První půlka dejme tomu, druhá absolutní nesmysl. Kde by ti tam tak najednou vznikly proměnné s1, s2 a s3?
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 14. 12. 2021 09:27

"Kde by ti tam tak najednou vznikly proměnné s1, s2 a s3?"
To byla jen analogie... jak mám teda vyjádřit, že ti rozkuchá to pole na jednotlivé položky v tom poli?
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 12. 2021 09:35

Ale ono to nekuchá pole. Kuchá to string a výsledkem je pole o 4 prvcích:
Kód: Vybrat vše
{ "AA", "bbb", "cCc", "" }
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 14. 12. 2021 09:38

V učebnici bylo řečeno, že string je speciální případ pole... dobře, ale co z toho jako vyplívá užitečného?
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 12. 2021 09:40

Nerozumím otázce.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 14. 12. 2021 09:59

Jakej v tom mám hledat vyšší princip, než to, že ze string vznikne pole o čtyřech prvcích. ?
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 12. 2021 10:01

To není náboženství. To vyšší princip nemá. I když možná by sis mohl položit otázku, proč právě o 4 prvcích.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 14. 12. 2021 10:12

Kód: Vybrat vše
string s = "AA;bbb;cCc;";
string[] znaky = s.Split(';');


Kdybych to přepsal na
Kód: Vybrat vše
string s = "AAbbb!cCc";  a string[] znaky = s.Split('!');
dostanu dva prvky, ten vykřičník by určoval hranici...
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků