Există momente când doriți să utilizați caractere speciale sau șiruri de caractere care conțin caractere speciale, cum ar fi caracterul linie nouă. Evident că nu e posibil doar să scrieți textul pe o linie nouă în codul dvs. Acesta este momentul în care secvențele Escape sunt de folos.
Secvențele Escape sunt caractere speciale care practic nu pot fi reprezentate în mod direct în codul sursă; ele sunt toate precedate de caracterul backslash.
Lista de mai jos va prezintă caracterele escape utilizate cel mai frecvent:
1 2 3 4 5 6 |
\' //apostrof \" //ghilimele \\ //backslash \n //linie nouă \t //tabulator (tab) \uXXXX //caracter specificat după codul său Unicode, de exemplu \u0041. |
În continuare vom declara o variabilă de tip string care poate stoca text, pentru a ilustra utilizarea secvenței escape linie nouă:
1 2 3 4 5 6 7 8 9 10 11 12 |
class Program { static void Main(string[] args) { string primulString = "acesta este un string în care încercăm să adăugăm o linie nouă în cod"; // Afișează rezultatul la consolă Console.WriteLine(primulString); Console.Read(); } } |
Exemplul de mai sus nu va funcționa, iar compilatorul ne va avertiza cu privire la „Newline in constant”. Deci, cum adăugăm o linie nouă în șirul nostru?
1 2 3 4 5 6 7 8 9 10 11 12 |
class Program { static void Main(string[] args) { string primulString = "acesta este un string" + "în care încercăm să adăugăm o linie nouă în cod"; // Afișează rezultatul la consolă Console.WriteLine(primulString); Console.Read(); } } |
Textul de mai sus se va compila cu succes, dar din păcate textul va fi afișat în continuare pe o singură linie:
Modul corect de a adăuga o nouă linie este de fapt folosirea secvenței escape pentru a adăuga un caracter linie nouă:
1 2 3 4 5 6 7 8 9 10 11 |
class Program { static void Main(string[] args) { string primulString = "acesta este un string \nîn care încercăm să adăugăm o linie nouă în cod"; // Afișează rezultatul la consolă Console.WriteLine(primulString); Console.Read(); } } |
De data aceasta, rezultatul va fi:
După cum se poate vedea, variabila noastră de tip string conține secvența escape \n, care spune compilatorului să adăuge un caracter linie nouă la acea locație.
Un alt exemplu ideal ar fi utilizarea de ghilimele. Din moment ce compilatorul utilizează ghilimelele pentru a înțelege unde începe și unde se termină valoarea unei variabile string, adăugând ghilimele în interiorul șirului nostru va face compilatorul să creadă că am încercat să încheiem valoarea șirului:
1 |
string salutare = ""Buna, draga mea!" spuse el."; |
Codul de mai sus va genera cel mult o eroare de compilator. în schimb, forma corectă ar fi:
1 |
string salutare = "\"Buna, draga mea!\" spuse el."; |
care va produce această ieșire:
Conceptele explicate în această lecție sunt prezentate și vizual, ca parte a următorului videoclip:
EXERCIȚII
1. Declarați două variabile de tip string și atribuiți-le valoarea „Folosirea „ghilimelelor” provoaca dificultati” (fără ghilimelele exterioare). Într-una din variabile folosiți ghilimele, iar în cealaltă omiteți-le.
Soluție
E necesar să folosiți secvența escape \” sau stringurile verbatim.
2. Scrieți un program care afișează la consolă un triunghi isoscel cu laturile formate din caracterul copyright „©”
Solutie Tags: secvențe escape
Folosiți Console.WriteLine(…), caracterul © și spații. Folosiți Windows Character Map pentru a afla codul Unicode al semnului „©”. Țineți cont că la consolă e posibil să se afișeze „c” în loc de „©”, dacă aceasta nu suportă Unicode. Dacă acest lucru se întâmplă, e posibil să nu puteți rezolva acest exercițiu. Unele versiuni de Windows pur și simplu nu suportă Unicode la consolă, chiar și atunci când specificați în mod explicit encodarea caracterelor ca UTF-8: