Gyakorlat – A sztringformázás alapjainak vizsgálata
- 20 perc
Ebben a leckében megismerheti a sztringek hatékony megjelenítéshez való formázásának módszereit, különösen a több változót használó esetek esetében.
A kódolási környezet előkészítése
Ez a modul gyakorlati tevékenységeket tartalmaz, amelyek végigvezetik a bemutatókód létrehozásának és futtatásának folyamatán. Javasoljuk, hogy fejlesztési környezetként a Visual Studio Code használatával végezze el ezeket a tevékenységeket. Ha a Visual Studio Code-ot használja ezekhez a tevékenységekhez, könnyebben írhat és futtathat kódokat egy olyan fejlesztői környezetben, amelyet világszerte használnak a szakemberek.
Feljegyzés
Ha ebben a C#-sorozatban más Microsoft Learn-modulokat is elvégzett, előfordulhat, hogy már létrehozott egy projektmappát a kódmintákhoz. Ha ez a helyzet, kihagyhatja a lépések következő szakaszát, és törölheti az Project.cs előző gyakorlathoz használt fájlban lévő kódot.
Nyissa meg a Visual Studio Code-ot. A Visual Studio Code megnyitásához használhatja a Windows Start menüjét (vagy egy másik operációs rendszer egyenértékű erőforrását).
A Visual Studio Code File menüben válassza a Mappa megnyitása lehetőséget.
A Mappa megnyitása párbeszédpanelen lépjen a Windows Desktop mappába. Ha más mappahelyen tartja a kódprojekteket, használhatja inkább ezt a mappahelyet. Ebben a képzésben az a fontos, hogy legyen egy könnyen megtalálható és megjegyezhető hely.
A Mappa megnyitása párbeszédpanelen válassza a Mappa kiválasztása lehetőséget. Ha megjelenik egy biztonsági párbeszédpanel, amely megkérdezi, hogy megbízik-e a szerzőkben, válassza az Igen lehetőséget.
A Visual Studio Code Terminál menüjében válassza az Új terminál lehetőséget. Figyelje meg, hogy a Terminál panelen egy parancssor megjeleníti az aktuális mappa elérési útját. Példa:
C:\Users\someuser\Desktop>A Terminál parancssorában egy új konzolalkalmazás adott mappában való létrehozásához írja be a dotnet új konzol -o ./CsharpProjects/TestProject parancsot , majd nyomja le az Enter billentyűt. Ez a .NET CLI-parancs .NET-programsablon használatával hoz létre egy új C#-konzolalkalmazás-projektet a megadott mappahelyen. A parancs létrehozza Önnek a CsharpProjects és a TestProject mappákat, és a
.csprojFájl neveként a TestProjectet használja.Az EXPLORER panelen bontsa ki a CsharpProjects mappát. Ekkor megjelenik a TestProject mappa és két fájl, egy Program.cs nevű C# programfájl és egy TestProject.csproj nevű C# projektfájl.
Az EXPLORER panelen válassza a Program.cs lehetőséget, ha meg szeretné tekinteni a kódfájlt a Szerkesztő panelen.
Törölje a meglévő kódsorokat. Ezzel a C#-konzolprojektel kódmintákat hozhat létre, hozhat létre és futtathat a modul során.
Zárja be a Terminál panelt.
Mi az a kompozit formázás?
Az összetett formázás számozott helyőrzőket használ egy sztringen belül. Futásidőben a kapcsos zárójelek minden része egy olyan értékre lesz feloldva, amely a pozíciójuk alapján is átadva lesz.
Ez az összetett formázási példa az adattípus kulcsszó beépített metódusát Format()string használja. Frissítse a kódot a Visual Studio Code Editorban az alábbiak szerint:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Ha ezt a kódot futtatja, a következő kimenetet figyelheti meg.
Hello World!
Erre a kódra vonatkozóan van néhány fontos megjegyzendő dolog.
- Az adattípusok és az adott adattípus változói beépített „segéd metódusokkal” rendelkeznek, amelyen megkönnyítik bizonyos feladatok elvégzését.
- A literális sztring
"{0} {1}!"sablont alkot, amelynek részeit futásidőben cseréli le. - A(z)
{0}biztonsági jogkivonatot a program lecseréli a sztringsablon utáni első argumentummal, tehát afirstváltozó értékével. - A(z)
{1}biztonsági jogkivonatot a program lecseréli a sztringsablon utáni második argumentummal, tehát asecondváltozó értékével.
Feljegyzés
Azt gondolhatja, hogy furcsa a 0-val kezdeni. Valójában ez szoftverfejlesztés során igen gyakori. Amikor a kódban számmal azonosítható elemek szekvenciája található, a számozás általában 0-val kezdődik.
Frissítse a kódot az alábbiak szerint:
string first = "Hello"; string second = "World"; Console.WriteLine("{1} {0}!", first, second); Console.WriteLine("{0} {0} {0}!", first, second);Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot. A következő kimenetnek kell megjelennie:
World Hello! Hello Hello Hello!
Néhány megfigyelés a példákra vonatkozóan:
- Az első
Console.WriteLine()utasításnál figyelje meg, hogy a jogkivonatok bármilyen sorrendben rendezhetők. A mintakód már{1}korábban is volt{0}. - A második
Console.WriteLine()utasításnál figyelje meg, hogy a jogkivonatok három példányban{0}használhatók újra. A második változó argumentumotsecondsem használja a rendszer. A kód azonban továbbra is hiba nélkül fut.
Mit jelen a sztringinterpoláció?
A sztring-interpoláció egy olyan technika, amely leegyszerűsíti az összetett formázást.
Számozott jogkivonat és a literális érték vagy változó nevének a String.Format() vagy Console.WriteLine() argumentumlistáiba történő belefoglalása helyett használhatja csak a változó nevét a kapcsos zárójelek között.
Ahhoz, hogy egy sztring interpolált legyen előtagként meg kell adnia hozzá a
$utasítást. Most hozza létre ugyanazokat a korábbi példákat sztring interpolációval összetett formázás helyett. Frissítse a kódot az alábbiak szerint:string first = "Hello"; string second = "World"; Console.WriteLine($"{first} {second}!"); Console.WriteLine($"{second} {first}!"); Console.WriteLine($"{first} {first} {first}!");Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot. A következő kimenetnek kell megjelennie:
Hello World! World Hello! Hello Hello Hello!
Feljegyzés
Ha könyvekben és online kódpéldákat néz meg, valószínűleg látni fogja az összetett formázást és a sztringinterpolációt is, de általában a sztringinterpolációt kell választania.
Pénznem formázása
Az összetett formázás és a sztring-interpoláció használatával formázhatja a megjelenítendő értékeket egy adott nyelv és kulturális környezet alapján. A következő példában a :C pénznemformátum-jelölőt használtuk a price és a discount változó pénznemként való megjelenítésére. Frissítse a kódot az alábbiak szerint:
decimal price = 123.45m;
int discount = 50;
Console.WriteLine($"Price: {price:C} (Save {discount:C})");
Ha olyan számítógépen hajtotta végre ezt a kódot, amelyen a Windows megjelenítési nyelve "Angol (Egyesült Államok)" értékre van állítva, az alábbi kimenetet figyelheti meg.
Price: $123.45 (Save $50.00)
Figyelje meg, hogy a :C kapcsos zárójeleken belüli jogkivonatokhoz adásával pénznemként formázza a számot, attól függetlenül, hogy az int vagy a decimal tulajdonságot használja.
Feljegyzés
Mi történik, ha országa/régiója és nyelve nem ismert? Ha az előző kódot a "böngészőben" .NET-szerkesztőben futtatja, például a TrydotNetben, a következő kimenet jelenik meg: Price: ¤123.45 (Save ¤50.00). A szimbólum ¤ az ország/régió pénzének szimbóluma helyett használatos. Ez egy általános szimbólum, amely a pénznem típusától függetlenül a "pénznem" jelölésére szolgál. Ezt a szimbólumot láthatja a .NET-szerkesztőben, mert figyelmen kívül hagyja a jelenlegi helyét.
Hogyan befolyásolja a felhasználó országa/régiója és nyelve a sztringformázást?
Mi történik, ha az előző kódot egy franciaországi számítógépen hajtja végre, amelyen a Windows megjelenítési nyelve franciára van állítva? Ebben az esetben a következő kimenet fog megjelenni.
Price: 123,45 € (Save 50,00 €)
Az előző "€" kimenet oka az, hogy a sztring pénznemformázási funkciója a helyi számítógép kultúra szerinti beállításától függ. Ebben az összefüggésben a "kultúra" kifejezés a végfelhasználó országára/régiójára és nyelvére utal. A kulturális kód egy öt karakterből álló sztring, amelyet a számítógépek a végfelhasználó helyének és nyelvének azonosítására használnak. A kulturális kód biztosítja bizonyos információk, például a dátumok és a pénznem megfelelő bemutatását.
Példa:
- az USA-beli angol nyelvű beszélő kulturális kódja
en-US. - a franciaországi francia nyelvű beszélő kulturális kódja
fr-FR. - a kanadai francia nyelvű beszélő kulturális kódja
fr-CA.
A kulturális környezet hatással van az írási rendszerre, a használt naptárra, a sztringek rendezési sorrendjére, valamint a dátumok és számok formázására (például a pénznem formázása).
Sajnos a kód helyes működésének biztosítása az országtól/régiótól vagy a végfelhasználó nyelvétől függetlenül minden számítógépen kihívást jelent. Ezt a folyamatot honosításnak (vagy globalizációnak) nevezzük. A honosítás számos tényezőtől függ, amelyekről ebben a modulban nem esik szó, de a sztringformázás szintaxisa a felhasználó kulturális környezetétől függően más formátumot is használhat.
Számok formázása
Numerikus adatok használatakor érdemes lehet formázni a számot az olvashatóság érdekében úgy, hogy vesszőkkel több ezer, millió, milliárd stb.
A N numerikus formátumkijelölő a számokat olvashatóbbá teszi. Frissítse a kódot az alábbiak szerint:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N} units");
Ha ezt a en-US kultúrából tekinti meg, az alábbi kimenetet láthatja.
Measurement: 123,456.79 units
Alapértelmezés szerint az N számformátum-jelölő csak két számjegyet jelenít meg a tizedes vessző után.
Ha nagyobb pontosságot szeretne megjeleníteni, ezt egy számnak a meghatározó utáni megadásával teheti meg. Az alábbi kód négy számjegyet jelenít meg a tizedes vessző után az N4 jelölő használatával. Frissítse a kódot az alábbiak szerint:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N4} units");
Ha ezt a en-US kultúrából tekinti meg, az alábbi kimenetet láthatja.
Measurement: 123,456.7891 units
Százalékok formázása
A formátumjelölő használatával formázhatja a P százalékos értékeket, és 2 tizedesjegyre kerekítve. Ezután adjon hozzá egy számot a tizedesvessző után megjelenő értékek számának szabályozásához. Frissítse a kódot az alábbiak szerint:
decimal tax = .36785m;
Console.WriteLine($"Tax rate: {tax:P2}");
Ha ezt a en-US kultúrából tekinti meg, az alábbi kimenetet láthatja.
Tax rate: 36.79%
Formázási módszerek kombinálása
A sztringváltozók formázási technikákkal létrehozott sztringeket tárolhatnak. Az alábbi példában a decimális és a decimális matematikai eredmények összetett formázással vannak formázva és tárolva a yourDiscount sztringben.
Frissítse a kódot az alábbiak szerint.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
Console.WriteLine(yourDiscount);
Ha ezt a en-US kultúrából tekinti meg, az alábbi kimenetet láthatja.
You saved $7.56 off the regular $67.55 price.
Több formázott sztringet is kombinálhat. Az előző kódra építve a számított százalékot a sztringek összefűzése helyett a sztringinterpolációval összefűzve szúrja be yourDiscount += $"A discount of {(price - salePrice)/price:P2}!"; a kódot a sor előtt Console.WriteLine().
Feljegyzés
Ehhez a sztring interpolációs megközelítéshez nem kell használnia String.Format() .
Frissítse a kódot az alábbiak szerint.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
yourDiscount += $"A discount of {((price - salePrice)/price):P2}!"; //inserted
Console.WriteLine(yourDiscount);
Ha ezt a leckét a en-US kultúrából tekinti meg, az alábbi kimenetet figyelheti meg.
You saved $7.56 off the regular $67.55 price. A discount of 11.19%!
Összefoglalás
Az alábbiak az egység sztringformázással kapcsolatos legfontosabb tanulságai:
- A sztringek formázására használhat összetett formázást vagy sztring-interpolációt.
-
Összetett formázás esetén egy sztringsablont használ, amely egy vagy több helyettesítő helyőrzőket tartalmaz az űrlapon
{0}. A helyettesítő jogkivonatokkal egyező argumentumok listáját is megadhatja a sorrendjük alapján. Az összetett formázás astring.Format()vagy aConsole.WriteLine()használatakor működik. - A sztringinterpolációval egy sztringsablont használ, amely a lecserélni kívánt változóneveket kapcsos zárójelekkel veszi körül. A sztringsablon előtt használja a
$utasítás annak jelzésére, hogy szeretné interpolálni a sztringet. - Pénznem formázása
:Cjelölővel. - Szám formázása
:Njelölővel. A pontosságot (a tizedesvessző utáni értékek számát) az:Nutáni számmal adhatja meg, például{myNumber:N3}. - Százalékok formázása a
:Pformátumkijelölő használatával. - A pénznemek és számok formázása a végfelhasználói kultúrától függ, amely egy öt karakterkód, amely tartalmazza a felhasználó országát/régióját és nyelvét (a számítógép beállításainak megfelelően).
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?