JavaRush /Java Blogu /Random-AZ /Java-da qaçan simvollar
Oleksandr Klymenko
Səviyyə
Харків

Java-da qaçan simvollar

Qrupda dərc edilmişdir
Nəsə xəta baş verdi! Bu məqalə JavaRush komandasındakı vəzifə üçün test tapşırığı kimi yazılmışdır. Və tam mühazirə kimi yazılmışdır. Buna görə bu yazıda toplanmış faydalı biliklərin keyfiyyətinə və kəmiyyətinə zəmanət verirəm. Məqalədə praktiki və nəzəri məlumatlardan əlavə, sizin heç bilmədiyiniz maraqlı faktlar da var! Java-da qaçan simvollar - 1Salam Dünya! Xarakterdən qaçmaq çox maraqlı və zəruri texniki həlldir. Xarakterdən qaçmaq ehtiyacı bütün proqramlaşdırma sənayesinin tarixində mühüm rol oynamışdır. Bu yazıda xarakterdən qaçmağın nə olduğu, onlardan qaçmağa nə üçün ehtiyac olduğu və Java-da xarakterdən qaçmağın necə həyata keçirildiyi haqqında danışacağıq. Məqalədə xarakterdən qaçma mövzusu ilə bağlı nümunələr və maraqlı faktlar təqdim olunacaq. Oxumaqdan həzz alın! Kompüter sistemindəki bütün məlumatlar mətn şəklində təqdim olunur, daha aşağı səviyyədə baytlarla təmsil olunur. Məktub və ya mesaj yazarkən insana başa düşüləcək mətn yazırıq. IDE-də kod yazarkən, kompilyatorun təhlil edə biləcəyi mətni yazırıq. StringJava-da mətn verilənləri nəzarət simvolları - qoşalaşmış sitatlar ilə təmsil olunan bir növ kimi təqdim edilə bilər .
String str = "Hello World!";
“Salam Dünya!” mətni ilə heç bir problem yaranmır, amma birbaşa nitqdə eyni mətni vurğulamaq lazımdırsa necə? Qrammatika qaydalarından istifadə edərək aydın olur ki, “Salam Dünya!” mətni tipdən idarə simvollarına əlavə olaraq Stringbirbaşa nitq sitatlarına yerləşdirilməlidir.
String str = "Java said, "Hello World!"";
Bu seçim işləməyəcək, çünki kompilyator sadəcə dəyişənin başlanğıcının hansı nöqtədə bitdiyini başa düşməyəcək str. Bu və buna bənzər problemləri həll etmək üçün simvollardan qaçmaq , yəni idarəetmə simvollarını qaçış ardıcıllığı kimi tanınan sözdə idarəetmə ardıcıllığına dəyişdirmək icad edilmişdir . Aşağıda sətirlərdə istifadə üçün etibarlı java qaçış ardıcıllığının siyahısı verilmişdir. \t — Tab simvolu (javada – dörd boşluğa ekvivalent); \b— Mətndə bir addım geriyə qayıdış simvolu və ya sətirdəki bir simvolun silinməsi (geri işarə); \n— Yeni xətt simvolu; \r— Vaqonun qaytarılması simvolu; \f— Səhifəni növbəti səhifənin əvvəlinə keçirin; \'— Tək sitat simvolu; \"— İkiqat sitat xarakteri; \\— əks kəsik işarəsi ( \). İndi isə cümləmizdəki birbaşa nitqi vurğulayaq ki, tərtibçi yazılanları asanlıqla təhlil edə bilsin.
String str = "Java said, \"Hello World!\"";
Beləliklə, dəyişənin məzmunu strekranda göstərilirsə, yazılı mətn həm tərtibçi, həm də şəxs üçün başa düşüləndir. Xarakterdən qaçmağın nə olduğunu və nə üçün lazım olduğunu anladıq. Və hətta ikiqat sitat xarakterindən də qaçdılar! Qalan qaçış ardıcıllıqlarını təhlil etməyə davam edək.
Başqa nə oxumaq lazımdır:

Java Tərtibatçı Qrupu:

Xəttdəki nişan simvolu qaçış ardıcıllığı ilə göstərilir \tvə dörd boşluğa bənzəyir. Lakin, dörd boşluqdan ibarət sətir uzunluğu dörd simvolun uzunluğuna bərabərdirsə, nişan simvolu olan sətirin uzunluğu birə bərabər olacaqdır. Tab simvolu tez-tez cədvəllər və ya psevdoqrafik interfeys elementləri qurmaq üçün istifadə olunur, çünki... Bu, dörd boşluq yazmaqdan daha rahatdır. Aşağıda psevdoqrafik interfeys nümunəsi verilmişdir. Java-da qaçan simvollar - 2Bütün qaçış ardıcıllıqları arasında simvol \bbəlkə də ən maraqlısıdır, çünki o, çıxış sətirindəki sonuncu simvolu silməyə imkan verir, geriyə düyməni basaraq onu sildiyimiz kimi .
System.out.print("2 + 2 = 5"); // Screen displays 2 + 2 = 5
System.out.print("\b");// Screen displays 2 + 2 =
System.out.print("4");// Screen displays 2 + 2 = 4
Simvolların ümumi tarixçəsi \nvar \r- gəlin onlara birlikdə baxaq. \nOla bilsin ki, siz əvvəllər sətir kəsilməsi xarakteri ilə qarşılaşmısınız. Məsələn, bir metod println()məlumatı çıxarırsa ki, növbəti çıxış yeni sətirdə olsun, o zaman metod print()çıxışdan sonra sətir kəsilməsini yerinə yetirmir, lakin çıxışın sonuna simvol əlavə etsəniz \n, sətir sonu olur. icra olunacaq.
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
Karetajın qaytarılması simvolu \rbizə kursoru çıxış sətirinin əvvəlinə qaytarmağa və yeni məlumatı sanki bu sətirdə əvvəllər heç nə olmamış kimi göstərməyə imkan verir.
System.out.print("Text to be rewritten.");//The screen displays "Text to be rewritten."
System.out.print('\r');//The screen is blank
System.out.print("New text.");//The screen displays "New text."
Əslində, vaqonun qaytarılması mətnin makinalarda çap edildiyi günlərə təsadüf edir. Xətt ötürülməsini yerinə yetirmək üçün vaqonu hərəkət etdirmək və qolu (makina mexanizminin bir hissəsi) aşağı salmaq lazım idi, bundan sonra xəttin ötürülməsi yerinə yetiriləcəkdir. Qolu endirməsəydi, eyni sətirdə çap etməyə davam edə bilərsiniz. Simvol göstərdikdə müşahidə etdiyimiz budur \r. Bununla əlaqədar olaraq, proqramçı sətir kəsilməsini yerinə yetirmək istədikdə, o, vərdişdən kənar, çıxışın sonunda simvollar ardıcıllığını yerinə yetirdi \r\n. Yazı makinası dövrü sona çatdığından, özləri yazı makinasında heç vaxt işləməsələr də, hələ də bu ardıcıllıqdan istifadə edən proqramçılar nəsli var idi. Onlar tez-tez müəyyən bir ardıcıllığı tamamlamaq üçün hansı ardıcıllıqla lazım olduğunu unudurlar - \r\nvə ya \n\r. Sonra onların köməyinə bir test sözü gəldi return, burada bu simvolların göstərilmə ardıcıllığı aydın görünürdü. Lakin sonradan, Windows-un ilk versiyaları üçün proqram təminatı hazırlayarkən, MS-DOS-dan sonra proqramçılar ardıcıllıqla istifadə etməyə məcbur oldular \r\n. İndi bu barədə narahat olmaq lazım deyil və xətti qırmaq üçün yalnız simvoldan istifadə edin \n. Java-da qaçan simvollar - 3Yenidən keçmişə qayıdaq, təxminən 80-ci illərə. \fMəhz bundan sonra növbəti səhifənin əvvəlinə doğru səhifənin simvolu məşhurlaşdı. O dövrdə böyük xətt printerləri var idi, onlarla işləmək üçün printerin nəyi və necə çap etməli olduğu proqram kodunu yazmaq lazım idi. Və mətnin yeni səhifədən başlamalı olduğunu göstərmək üçün simvoldan istifadə edilmişdir \f. Bizim dövrümüzdə bu simvol çoxdan öz aktuallığını itirib və çətin ki, onunla heç vaxt rastlaşasınız. Xətti printerin ölçüləri olduqca təsir edicidir. Java-da qaçan simvollar - 4Simvollarla \’\\hər şey ikiqat sitatdan qaçmaqla eynidir, məqalənin əvvəlində bir nümunə var idi. Siz tək sitatdan qaçmalı olacaqsınız, məsələn, simvol tipini tək sitatla işə salmaq üçün.
char ch = '\'';
Aşağıdakı simvolun qaçış ardıcıllığının bir hissəsi olmayacağını göstərmək üçün əks kəsik işarəsindən qaçın.
System.out.println("\\n - line break escape sequence");
// Output: \n - line break escape sequence
Praktikada, yollarla işləyərkən tez-tez əks kəsiklərdən qaçmalı olursunuz:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
// Output: It's Java string: "C:\Program Files\Java\jdk1.7.0\bin"
Vurğuladım ki, bu qaçış ardıcıllıqları sətirlərdə (string literals) istifadə olunur, çünki onların qalan hissəsi sinif müntəzəm ifadələrini təsvir etmək üçün istifadə olunur Patternvə bu məqalənin mövzusuna uyğun deyil. Burada siz sinif üçün bütün qaçış ardıcıllığının siyahısını görə bilərsiniz Pattern. Bununla belə, qeyd etmək lazımdır ki, indi mövcud olan formada olan müntəzəm ifadələri təkcə java deyil, digər populyar proqramlaşdırma dillərində, məsələn, PHP-də də qaçış ardıcıllığından istifadə etmədən təsəvvür etmək olmaz. Java-da simvolların qaçması sətir formatlaşdırmasında da istifadə olunur. Məsələn, faiz simvolunu göstərmək üçün sətir formatını təyin edərkən, faiz simvolunu dublikat etməlisiniz - %%, əks halda xəta alacağıq və IDE sizdən faizi əlavə etməyi təklif edəcək.
System.out.printf("Milk fat percentage : %d%%", 10);
// Milk fat percentage : 10%
Bununla da məqalə yekunlaşır. Ümid edirəm ki, siz xarakterdən qaçmaq və onu necə həyata keçirmək barədə çox şey öyrəndiniz. Xarakterlərin qaçması bir çox proqramlaşdırma dillərinə xasdır. Digər C-yə bənzər dillərdə olduğu kimi java-da da bu texnologiya demək olar ki, eyni şəkildə həyata keçirilir. Buna görə də, bu məqalədən əldə etdiyiniz biliklər təkcə java deyil, faydalı ola bilər. Diqqətiniz üçün təşəkkür edirik və təhsilinizdə uğurlar!
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION