Gyakorlat – Split() és Join() felfedezése
- 10 perc
Ahogy folytatja a logisztikai vállalat fejlesztési munkáját, elkezdi kis alkalmazások sorozatának létrehozását. Ezek az alkalmazások együttműködve adatokat vesznek át az egyik partner rendszeréből, módosítják, majd továbbítják egy belső rendszernek a szükséges formátumban.
Az adatátalakítás végrehajtásához sztringként kell fogadnia a bejövő adatokat, elemeznie kell kisebb adatelemekké, majd módosítania kell őket, hogy megfeleljenek a különböző szükséges formátumoknak. Hogyan elemezheti a sztringadatokat kisebb adatelemekké?
A sztring adattípus tömbmetszetei
A string típusú változók számos beépített metódussal rendelkeznek egy adott sztring kisebb sztringek tömbjévé vagy különálló karakterek tömbjévé való konvertálásához.
Amikor más számítógépes rendszerekből dolgoz fel adatokat, azokat olykor úgy formázzák vagy kódolják, hogy azok nem hasznosak az Ön céljaira. Ezekben az esetekben az string adattípus tömbmetódusával elemez egy sztringet egy tömbben.
A fordított ToCharArray()string
Törölje vagy használja a sor megjegyzés operátorát
//az előző gyakorlatok összes kódjának megjegyzéséhez.Frissítse a kódot a Visual Studio Code Editorban az alábbiak szerint:
string value = "abc123"; char[] valueArray = value.ToCharArray();
Ebben a példában a ToCharArray() metódus egy tömböt charhoz létre, amelyben a tömb minden eleme az eredeti sztring egy karakterét jelöli.
Fordított, majd a karaktertömb összevonása egy új sztringgel
Ezután a tömbben lévő karakterek sorrendje megfordítva lesz, majd a Write metódussal egyetlen kimenetbe egyesítheti őket.
Frissítse a kódot a Visual Studio Code Editorban az alábbiak szerint:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);A
new string(valueArray)kifejezés létrehozza aSystem.Stringosztály (amely megegyezik a C#stringadattípusával) egy új, üres példányát, és konstruktorként adja át neki a karaktertömböt.Feljegyzés
Mi az a
newkulcsszó? Hogyan viszonyul aSystem.Stringosztály a C#stringadattípusához? Mi az a konstruktor? Mindegyik remek kérdés, sajnos azonban a jelen modul nem foglalkozik velük. Javasoljuk, hogy folyamatosan ismerje meg a .NET osztálytárat, valamint a C# osztályait és objektumait, hogy teljes mértékben megértse, mi történik a színfalak mögött ezzel a kódkifejezéssel. Egyelőre egy keresőmotor és a Microsoft dokumentációja segítségével talál példákat az ilyen helyzetekben, ahol tudja, hogy konverziót szeretne végrehajtani, de nem biztos benne, hogy a C# használatával szeretné elvégezni.A Visual Studio Code File menüben válassza a Mentés lehetőséget.
A Program.cs fájlt a kód létrehozása vagy futtatása előtt menteni kell.
Az EXPLORER panelen nyissa meg a Terminált a TestProject mappa helyén, kattintson a jobb gombbal a TestProject elemre, majd válassza a Megnyitás az integrált terminálban lehetőséget.
Meg kell nyitnia egy terminálpanelt, és tartalmaznia kell egy parancssort, amely azt mutatja, hogy a terminál nyitva van a TestProject mappa helye előtt.
A terminál parancssorában a kód futtatásához írja be a dotnet run parancsot, majd nyomja le az Enter billentyűt.
Feljegyzés
Ha "Nem található futtatandó projekt" üzenet jelenik meg, győződjön meg arról, hogy a Terminál parancssora megjeleníti a TestProject mappa várt helyét. Például:
C:\Users\someuser\Desktop\csharpprojects\TestProject>A következő kimenetnek kell megjelennie:
321cba
Az összes karakter kombinálása egy új vesszővel tagolt érték sztringben a következő használatával: Join()
Bizonyos esetekben előfordulhat, hogy a karaktertömb minden elemét vesszővel kell elválasztania, ami gyakori gyakorlat az ASCII-szövegként ábrázolt adatok használatakor. Ehhez megjegyzést fűz a 2. lépésben hozzáadott kódsorhoz, és használja az String osztály metódusát Join() , és adja meg az egyes szegmenseket (a vesszőt) és magát a tömböt elválasztó karaktert.
Frissítse a kódot a Visual Studio Code Editorban az alábbiak szerint:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot.
A következő kimenetnek kell megjelennie:
3,2,1,c,b,a
Split() a vesszővel tagolt érték sztringje sztringek tömbje
A kód befejezéséhez a Split() metódust használja a rendszer. Ez a metódus típusváltozókhoz string lett tervezve, és sztringtömböt hoz létre.
A Visual Studio Code Editor használatával adja hozzá a következő kódsorokat a fájl alján:
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Szánjon egy percet az előző kód áttekintésére.
A vesszőt a rendszer elválasztóként adja meg
.Split()egy hosszú sztring kisebb sztringekre való felosztásához. A kód ezután egy hurkotforeachhasznál az újonnan létrehozott sztringtömb egyes elemeinek iterálásához.itemsEllenőrizze, hogy a kód a következőképpen jelenik-e meg:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot.
A kód futtatásakor a következő kimenet jelenik meg:
3,2,1,c,b,a 3 2 1 c b aA
itemsrendszerstring[] items = result.Split(',');a ciklusban létrehozott tömböt használja,foreachés megjeleníti a változó eredetistringvaluekaraktereit.
Összefoglalás
A sztringek és tömbök használatakor az alábbiakra kell emlékezni:
- Tömb létrehozásához használjon olyan metódusokat, mint a
ToCharArray()Split() - A tömb egyetlen sztringgé alakításához használjon például
Join()egy új sztringet, vagy hozzon létre egy új sztringet, amely egychar
Tesztelje tudását
Visszajelzés
Hasznosnak találta ezt az oldalt?
No
Segítségre van szüksége ezzel a témakörrel kapcsolatban?
Szeretné kipróbálni az Ask Learn használatát a témakör tisztázásához vagy áttekintéséhez?