Exerciții - Investigarea noțiunilor de bază despre formatarea șirurilor
- 20 minute
În această unitate, învățați metode de formatare a șirurilor pentru afișare eficientă, mai ales pentru cazurile care utilizează mai multe variabile.
Pregătirea mediului de codificare
Acest modul include activități practice care vă ghidează în procesul de creare și de rulare a codului demonstrativ. Sunteți încurajat să finalizați aceste activități utilizând Visual Studio Code ca mediu de dezvoltare. Utilizarea Codului Visual Studio pentru aceste activități vă ajută să deveniți mai confortabil să scrieți și să rulați cod într-un mediu de dezvoltator utilizat de profesioniști din întreaga lume.
Notă
Dacă ați finalizat alte module Microsoft Learn din această serie C#, este posibil să fi creat deja un folder de proiect pentru eșantioane de cod. Dacă acesta este cazul, puteți să omiteți următoarea secțiune de pași și să ștergeți codul din fișierul Project.cs utilizat pentru un exercițiu anterior.
Deschideți Visual Studio Code. Puteți utiliza meniul Start Windows (sau resursa echivalentă pentru un alt sistem de operare) pentru a deschide Visual Studio Code.
În meniul Fișier Visual Studio Code, selectați Deschidere folder.
În caseta de dialog Deschidere folder, navigați la folderul Desktop Windows. Dacă aveți o altă locație de folder în care păstrați proiectele de cod, puteți utiliza acea locație de folder în schimb. Pentru această instruire, lucrul important este să aveți o locație ușor de găsit și de reținut.
În caseta de dialog Deschidere folder, selectați Selectare folder. Dacă vedeți o casetă de dialog de securitate care vă întreabă dacă aveți încredere în autori, selectați Da.
În meniul Terminal Visual Studio Code, selectați Terminal nou . Observați că o linie de comandă din panoul Terminal afișează calea folderului pentru folderul curent. De exemplu:
C:\Users\someuser\Desktop>În linia de comandă Terminal, pentru a crea o aplicație consolă nouă într-un folder specificat, tastați dotnet consolă nouă -o ./CsharpProjects/TestProject , apoi apăsați pe Enter. Această comandă .NET CLI utilizează un șablon de program .NET pentru a crea un nou proiect de aplicație consolă C# în locația de folder specificată. Comanda creează folderele CsharpProjects și TestProject pentru dvs. și utilizează TestProject ca nume al fișierului
.csproj.În panoul EXPLORER, extindeți folderul CsharpProjects. Ar trebui să vedeți folderul TestProject și două fișiere, un fișier program C# denumit Program.cs și un fișier proiect C# numit TestProject.csproj.
În panoul EXPLORER, pentru a vizualiza fișierul de cod în panoul Editor, selectați Program.cs.
Ștergeți liniile de cod existente. Utilizați acest proiect de consolă C# pentru a crea, a construi și a rula eșantioane de cod în timpul acestui modul.
Închideți panoul Terminal.
Ce este formatarea compusă?
Formatarea compusă utilizează substituenți numerotați dintr-un șir. La momentul rulării, totul din interiorul acoladelor este rezolvat la o valoare care este transmisă, de asemenea, pe baza poziției lor.
Acest exemplu de formatare compusă utilizează o metodă Format() predefinită pentru cuvântul cheie al tipului string de date. Actualizați codul în Visual Studio Code Editor după cum urmează:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Dacă rulați acest cod, observați următoarea ieșire.
Hello World!
Există câteva lucruri importante de observat despre acest cod.
- Tipurile de date și variabilele unui anumit tip de date au predefinite "metode de ajutor" pentru a simplifica anumite activități.
- Șirul
"{0} {1}!"literal formează un șablon, ale căror părți sunt înlocuite la momentul rulării. - Simbolul
{0}este înlocuit de primul argument după șablonul șir, cu alte cuvinte, valoarea variabileifirst. - Simbolul
{1}este înlocuit de al doilea argument după șablonul șir, cu alte cuvinte, valoarea variabileisecond.
Notă
S-ar putea să credeți că este ciudat să începeți cu numărul 0. De fapt, acest lucru este foarte comun în dezvoltarea de software. Ori de câte ori există o secvență de elemente care pot fi identificate utilizând un număr, numerotarea va începe de obicei de la 0.
Actualizați codul după cum urmează:
string first = "Hello"; string second = "World"; Console.WriteLine("{1} {0}!", first, second); Console.WriteLine("{0} {0} {0}!", first, second);Salvați fișierul de cod, apoi utilizați Visual Studio Code pentru a rula codul. Ar trebui să vedeți următoarea ieșire:
World Hello! Hello Hello Hello!
Câteva observații despre aceste exemple:
- Pentru prima
Console.WriteLine()instrucțiune, observați că simbolurile pot fi aranjate în orice ordine. Codul eșantion are{1}înainte{0}. - Pentru a doua
Console.WriteLine()instrucțiune, observați că simbolurile pot fi reutilizate cu trei instanțe de{0}. De asemenea, al doilea argument variabil,second, nu este utilizat. Cu toate acestea, codul încă rulează fără eroare.
Ce este interpolarea șirului?
Interpolarea șirului este o tehnică care simplifică formatarea compusă.
În loc să utilizați un simbol numerotat și să includeți valoarea literală sau numele variabilei într-o listă de argumente la String.Format() sau Console.WriteLine(), puteți utiliza doar numele variabilei în interiorul acoladelor.
Pentru ca un șir să fie interpolat, trebuie să îl prefixați cu
$directiva. Acum, creați aceleași exemple mai devreme utilizând interpolarea șirului în locul formatării compuse. Actualizați codul după cum urmează:string first = "Hello"; string second = "World"; Console.WriteLine($"{first} {second}!"); Console.WriteLine($"{second} {first}!"); Console.WriteLine($"{first} {first} {first}!");Salvați fișierul de cod, apoi utilizați Visual Studio Code pentru a rula codul. Ar trebui să vedeți următoarea ieșire:
Hello World! World Hello! Hello Hello Hello!
Notă
Dacă vă uitați la exemple de cod în cărți și online, este posibil să vedeți atât formatarea compusă , cât și interpolarea șirurilor utilizate, dar, în general, ar trebui să alegeți interpolarea șirului.
Formatarea monedei
Formatarea compusă și interpolarea șirurilor pot fi utilizate pentru a formata valorile pentru afișarea unei anumite limbi și culturi. În exemplul următor, :C specificatorul formatului monetar este utilizat pentru a prezenta variabilele price și discount ca monedă. Actualizați codul după cum urmează:
decimal price = 123.45m;
int discount = 50;
Console.WriteLine($"Price: {price:C} (Save {discount:C})");
Dacă ați executat acest cod pe un computer care are limba de afișare Windows setată la "Engleză (Statele Unite)", observați următoarea ieșire.
Price: $123.45 (Save $50.00)
Observați cum adăugarea :C simbolurilor din interiorul acoladelor formatează numărul ca monedă indiferent dacă utilizați int sau decimal.
Notă
Ce se întâmplă dacă țara/regiunea și limba dvs. nu sunt cunoscute? Dacă rulați codul anterior în editorul .NET "în browser", cum ar fi la TrydotNet , veți vedea următoarea ieșire: Price: ¤123.45 (Save ¤50.00).
¤ Simbolul este utilizat în locul simbolului pentru banii țării/regiunii dvs. Acesta este un simbol generic utilizat pentru a indica "monedă", indiferent de tipul de monedă. Vedeți acest simbol în Editorul .NET, deoarece ignoră locația curentă.
Cum afectează țara/regiunea și limba utilizatorului formatarea șirului
Ce se întâmplă dacă executați codul anterior pe un computer din Franța care are limba sa de afișare Windows setată la franceză? În acest caz, veți vedea următoarea ieșire.
Price: 123,45 € (Save 50,00 €)
Motivul pentru rezultatul "€" anterior este că caracteristica de formatare a monedei șir depinde de setarea computerului local pentru cultură. În acest context, termenul "cultură" se referă la țara/regiunea și limba utilizatorului final. Codul de cultură este un șir de cinci caractere utilizat de computere pentru a identifica locația și limba utilizatorului final. Codul culturii asigură prezentarea corectă a anumitor informații, cum ar fi datele și moneda.
De exemplu:
- codul de cultură al unui vorbitor în limba engleză din SUA este
en-US. - codul de cultură al unui vorbitor francez din Franța este
fr-FR. - codul de cultură al unui vorbitor francez din Canada este
fr-CA.
Cultura afectează sistemul de scriere, calendarul utilizat, ordinea de sortare a șirurilor și formatarea pentru date și numere (cum ar fi formatarea monedei).
Din păcate, asigurându-vă că codul funcționează corect pe toate computerele, indiferent de țara/regiunea sau limba utilizatorului final este o provocare. Acest proces este cunoscut ca localizare (sau globalizare). Localizarea depinde de mulți factori care nu sunt discutați în acest modul, dar pur și simplu, sintaxa de formatare a șirului poate utiliza un alt format, în funcție de cultura utilizatorului.
Formatarea numerelor
Atunci când lucrați cu date numerice, poate doriți să formatați numărul pentru lizibilitate, incluzând virgule pentru a delimita miile, milioanele, miliarde și așa mai departe.
Specificatorul N de format numeric face numerele mai ușor de citit. Actualizați codul după cum urmează:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N} units");
Dacă vizualizați acest lucru din en-US cultură, observați rezultatul următor.
Measurement: 123,456.79 units
În mod implicit, N specificatorul de format numeric afișează doar două cifre după virgula zecimală.
Dacă doriți să afișați mai multă precizie, puteți face acest lucru adăugând un număr după specificator. Următorul cod va afișa patru cifre după virgula zecimală utilizând N4 specificatorul. Actualizați codul după cum urmează:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N4} units");
Dacă vizualizați acest lucru din en-US cultură, observați rezultatul următor.
Measurement: 123,456.7891 units
Formatarea procentelor
Utilizați specificatorul de format pentru a formata P procentele și rotunjește la 2 zecimale. Adăugați un număr ulterior pentru a controla numărul de valori afișate după virgula zecimală. Actualizați codul după cum urmează:
decimal tax = .36785m;
Console.WriteLine($"Tax rate: {tax:P2}");
Dacă vizualizați acest lucru din en-US cultură, observați rezultatul următor.
Tax rate: 36.79%
Combinarea abordărilor de formatare
Variabilele de șir pot stoca șiruri create utilizând tehnici de formatare. În exemplul următor, rezultatele matematice zecimale și zecimale sunt formatate și stocate în yourDiscount șir utilizând formatare compusă.
Actualizați codul după cum urmează.
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);
Dacă vizualizați acest lucru din en-US cultură, observați rezultatul următor.
You saved $7.56 off the regular $67.55 price.
Puteți combina mai multe șiruri formatate. Construiți-vă pe codul anterior concatenând procentul calculat utilizând interpolarea șirului în locul concatenării șirului, inserând yourDiscount += $"A discount of {(price - salePrice)/price:P2}!"; în cod în linia anterioară Console.WriteLine().
Notă
Nu trebuie să utilizați String.Format() cu această abordare a interpolării șirului.
Actualizați codul după cum urmează.
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);
Dacă vizualizați această unitate din en-US cultură, observați rezultatul următor.
You saved $7.56 off the regular $67.55 price. A discount of 11.19%!
Recapitulare
Iată cele mai importante soluții din această unitate despre formatarea șirului:
- Puteți utiliza formatarea compusă sau interpolarea șirurilor pentru a formata șiruri.
- Cu formatare compusă, utilizați un șablon de șir care conține unul sau mai multe simboluri de înlocuire din formular
{0}. De asemenea, furnizați o listă de argumente care sunt potrivite cu tokenurile de înlocuire pe baza ordinii lor. Formatarea compusă funcționează atunci când utilizațistring.Format()sauConsole.WriteLine(). - Cu interpolarea șirului, utilizați un șablon de șir care conține numele variabilelor pe care doriți să le înlocuiți cu acolade. Utilizați directiva de dinainte de
$șablonul șir pentru a indica faptul că șirul să fie interpolat. - Formatarea monedei utilizând un
:Cspecificator. - Formatarea numerelor utilizând un
:Nspecificator. Controlați precizia (numărul de valori de după virgula zecimală) utilizând un număr după valoarea similară:N{myNumber:N3}. - Formatarea procentelor utilizând specificatorul de
:Pformatare. - Formatarea monedei și a numerelor depinde de cultura utilizatorului final, de un cod de cinci caractere care include țara/regiunea și limba utilizatorului (conform setărilor de pe computer).
Verificați-vă cunoștințele
Feedback
Această pagină a fost utilă?
Nu
Aveți nevoie de ajutor cu acest subiect?
Doriți să încercați să utilizați Întrebați Microsoft Learn pentru a clarifica sau primi îndrumări privind acest subiect?