Nimadir noto'g'ri bajarildi! Ushbu maqola JavaRush jamoasidagi lavozim uchun test topshirig'i sifatida yozilgan. Va u to'liq ma'ruza sifatida yozilgan. Shu sababli, men sizga ushbu postda to'plangan foydali bilimlarning sifati va miqdorini kafolatlayman. Maqolada amaliy va nazariy ma'lumotlardan tashqari, siz bilmagan qiziqarli ma'lumotlar ham mavjud!
Salom Dunyo!
Belgilardan qochish - bu juda qiziqarli va zarur texnik yechim. Belgilardan qochish zarurati butun dasturlash sanoati tarixida muhim rol o'ynadi. Ushbu maqolada biz belgilardan qochish nima ekanligini, nima uchun ulardan qochish kerakligi va Java-da belgilardan qochish qanday amalga oshirilishi haqida gapiramiz. Maqolada xarakterdan qochish mavzusiga oid misollar va qiziqarli faktlar keltirilgan. O'qishdan zavqlaning! Kompyuter tizimidagi barcha ma'lumotlar matn ko'rinishida ifodalanadi, pastroq darajada baytlar bilan ifodalanadi. Biz xat yoki xabar yozganimizda, biz odamga tushunarli bo'lgan matnni yozamiz. IDE da kod yozganimizda, kompilyator tahlil qila oladigan matnni kiritamiz.
String
Java-da matn ma'lumotlari boshqaruv belgilari - juft qo'shtirnoqlar bilan ifodalangan tur sifatida ko'rsatilishi mumkin .
String str = "Hello World!";
“Salom dunyo!” matni bilan. hech qanday muammo yuzaga kelmaydi, lekin to'g'ridan-to'g'ri nutqda xuddi shu matnni ta'kidlash kerak bo'lsa-chi? Grammatika qoidalaridan foydalangan holda, "Salom dunyo!" matni turidagi boshqaruv belgilaridan tashqari
String
, to'g'ridan-to'g'ri nutq tirnoqlarida joylashtirilishi kerakligi aniq bo'ladi.
String str = "Java said, "Hello World!"";
Bu variant ishlamaydi, chunki kompilyator oddiygina o'zgaruvchining ishga tushirilishi qaysi nuqtada tugashini tushunmaydi
str
. Ushbu va shunga o'xshash muammolarni hal qilish uchun u ixtiro qilingan
belgilardan qochish , ya'ni
boshqaruv belgilarini qochish ketma-ketliklari deb ataladigan boshqaruv
ketma-ketligiga o'zgartirish . Quyida satrlarda foydalanish uchun yaroqli java qochish ketma-ketliklari ro'yxati keltirilgan.
\t
— Tab belgisi (javada – to‘rtta bo‘sh joy ekvivalenti);
\b
— Matndagi bir qadam orqaga qaytish yoki satrdagi bitta belgini o‘chirish (backspace);
\n
— yangi qator belgisi;
\r
— aravani qaytarish belgisi;
\f
— Sahifani keyingi sahifaning boshiga o‘tkazib yuborish;
\'
— bitta tirnoq belgisi;
\"
— Ikki tirnoq belgisi;
\\
— Teskari chiziq belgisi (
\
). Endi kompilyator yozilgan narsalarni osongina tahlil qilishi uchun iboramizdagi to'g'ridan-to'g'ri nutqni ajratib ko'rsatamiz.
String str = "Java said, \"Hello World!\"";
str
Shunday qilib, agar o'zgaruvchining mazmuni ekranda aks ettirilsa, yozma matn kompilyatorga ham, shaxsga ham tushunarli . Biz qochib ketish nima ekanligini va nima uchun kerakligini aniqladik. Va ular hatto qo'sh tirnoq belgisidan qochib qutulishdi! Qolgan qochish ketma-ketliklarini tahlil qilishni davom ettiramiz.
Satrdagi yorliq belgisi qochish ketma-ketligi bilan ko'rsatilgan
\t
va to'rtta bo'shliqqa o'xshash. Biroq, agar to'rtta bo'shliqdan iborat bo'lgan satr uzunligi to'rtta belgi uzunligiga teng bo'lsa, u holda yorliq belgisi bo'lgan satr uzunligi bittaga teng bo'ladi.
Tab belgisi ko'pincha jadvallar yoki psevdografik interfeys elementlarini qurish uchun ishlatiladi , chunki... Bu to'rtta bo'shliqni yozishdan ko'ra qulayroqdir. Quyida psevdo-grafik interfeysga misol keltirilgan.
Barcha qochish ketma-ketliklari orasida ramz,
\b
ehtimol, eng qiziqarlisidir, chunki u bizga chiqish satridagi oxirgi belgini o'chirishga imkon beradi, xuddi biz uni
orqaga qaytarish tugmachasini bosish orqali o'chirsak .
System.out.print("2 + 2 = 5");
System.out.print("\b");
System.out.print("4");
Ramzlar umumiy tarixga
\n
ega - keling, ularni birgalikda ko'rib chiqaylik. Siz avvalroq
\r
satr uzilish belgisiga duch kelgan bo'lishingiz mumkin.
\n
Misol uchun, agar usul
println()
keyingi chiqish yangi satrda bo'lishi uchun ma'lumot chiqarsa, u holda usul
print()
chiqishdan keyin satr uzilishini amalga oshirmaydi, lekin agar siz chiqish oxiriga belgi qo'shsangiz
\n
, u holda satr uzilishi amalga oshiriladi.
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
Karetani qaytarish belgisi
\r
bizga kursorni chiqish satrining boshiga qaytarish va yangi ma'lumotlarni go'yo bu satrda ilgari hech narsa bo'lmagandek ko'rsatish imkonini beradi.
System.out.print("Text to be rewritten.");
System.out.print('\r');
System.out.print("New text.");
Darhaqiqat, vagonni qaytarish matn yozuv mashinkalarida chop etilgan kunlarga to'g'ri keladi. Chiziqni uzatishni amalga oshirish uchun vagonni siljitish va qo'lni (yozuv mashinasi mexanizmining bir qismi) tushirish kerak edi, shundan so'ng chiziqni uzatish amalga oshiriladi. Agar tutqich tushirilmagan bo'lsa, xuddi shu chiziqda chop etishni davom ettirish mumkin edi. Belgini ko'rsatganimizda biz buni kuzatamiz
\r
. Shu munosabat bilan, dasturchi chiziq uzilishini amalga oshirmoqchi bo'lganida, u odatdan tashqari, chiqish oxirida belgilar ketma-ketligini bajardi
\r\n
. Yozuv mashinkasi davri tugashi bilan, hali ham bu ketma-ketlikni ishlatadigan dasturchilar avlodi paydo bo'ldi, garchi ular hech qachon yozuv mashinkasida ishlamagan bo'lsalar ham. Ular ko'pincha berilgan ketma-ketlikni qanday tartibda bajarish kerakligini unutib qo'yishadi -
\r\n
yoki
\n\r
. Keyin ularning yordamiga sinov so'zi keldi
return
, bu erda ushbu belgilarning ko'rsatilish tartibi aniq ko'rinib turardi. Biroq, keyinchalik, Windows-ning birinchi versiyalari uchun dasturiy ta'minotni ishlab chiqishda, MS-DOS-dan keyin dasturchilar ketma-ketlikni ishlatishga majbur bo'ldilar
\r\n
. Endi siz bu haqda tashvishlanishingiz shart emas va chiziqni buzish uchun faqat belgidan foydalaning
\n
.
Taxminan 80-yillar atrofidagi vaqtga qaytamiz. O'shanda sahifaning
\f
keyingi sahifaning boshiga o'tish belgisi mashhur bo'ldi. O'sha paytda katta chiziqli printerlar mavjud edi, ular bilan ishlash uchun printer nimani va qanday chop etishi kerak bo'lgan dastur kodini yozish kerak edi. Va matnni yangi sahifadan boshlash kerakligini ko'rsatish uchun belgi ishlatilgan
\f
. Bizning davrimizda bu ramz uzoq vaqtdan beri o'z ahamiyatini yo'qotdi va siz uni hech qachon uchratishingiz dargumon. Chiziqli printerning o'lchamlari juda ta'sirli.
Belgilar
\’
va
\\
hamma narsa qo'sh tirnoqdan qochish bilan bir xil, maqolaning boshida bir misol bor edi. Siz bitta tirnoqdan qochishingiz kerak bo'ladi, masalan, belgi turini bitta tirnoq bilan boshlash uchun.
char ch = '\'';
Quyidagi belgi qochish ketma-ketligining bir qismi bo'lmasligini ko'rsatish uchun teskari chiziq belgisidan qoching.
System.out.println("\\n - line break escape sequence");
Amalda, yo'llar bilan ishlashda ko'pincha teskari chiziqdan qochish kerak bo'ladi:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
Men bu qochish ketma-ketliklari satrlarda (string literal) qo'llanilishini ta'kidladim, chunki ularning qolgan qismi sinfdagi muntazam iboralarni tasvirlash uchun ishlatiladi
Pattern
va ushbu maqola mavzusiga tegishli emas.
Bu erda sinf uchun barcha qochish ketma-ketliklari ro'yxatini ko'rishingiz mumkin
Pattern
. Ammo shuni ta'kidlash joizki, hozirda mavjud bo'lgan shakldagi muntazam iboralarni nafaqat java, balki boshqa mashhur dasturlash tillarida, masalan, PHPda ham qochish ketma-ketligisiz tasavvur qilib bo'lmaydi. Java tilida belgilardan qochish string formatlashda ham qo'llaniladi. Misol uchun, foiz belgisini ko'rsatish uchun satr formatini belgilashda siz foiz belgisini takrorlashingiz kerak -
%%
, aks holda biz xatoga yo'l qo'yamiz va IDE foizni qo'shishni taklif qiladi.
System.out.printf("Milk fat percentage : %d%%", 10);
Bu maqolani yakunlaydi. Umid qilamanki, siz xarakterdan qochish va uni amalda qo'llash haqida ko'p narsalarni bilib oldingiz. Belgilardan qochish ko'pgina dasturlash tillariga xosdir. Java-da, C-ga o'xshash boshqa tillarda bo'lgani kabi, bu texnologiya deyarli bir xil tarzda amalga oshiriladi. Shuning uchun, ushbu maqoladan olgan bilimlaringiz nafaqat java tilida foydali bo'lishi mumkin. E'tiboringiz uchun rahmat va o'qishlaringizga omad!
GO TO FULL VERSION