Бир жерден ката кетти! Бул макала JavaRush командасындагы кызматка тесттик тапшырма катары жазылган. Ал эми толук кандуу лекция катары жазылган. Ушундан улам, мен сизге бул постто топтолгон пайдалуу бorмдердин сапатына жана санына кепилдик берем. Практикалык жана теориялык маалыматтардан тышкары, макалада сиз билбеген кызыктуу фактылар камтылган!
салам дүйнө
Мүнөздөн качуу - бул абдан кызыктуу жана керектүү техникалык чечим. Мүнөздөн качуу зарылчылыгы бүтүндөй программалоо индустриясынын тарыхында маанилүү роль ойногон. Бул макалада каармандардан качуу деген эмне, эмне үчүн алардан качуу зарылчылыгы бар жана Javaда символдон качуу кантип ишке ашары жөнүндө сүйлөшөбүз. Макалада каармандардын качуу темасына байланыштуу мисалдар жана кызыктуу фактылар келтирилет. Окуудан ырахат алыңыз! Компьютердик системадагы бардык маалымат текст түрүндө берилет, ал төмөнкү деңгээлде byte менен көрсөтүлөт. Кат же билдирүү жазганда адамга түшүнүктүү болгон текстти теребиз. IDEге code жазганда, компилятор талдай ала турган текстти теребиз.
String
Java тorнде текст маалыматтары башкаруу символдору - жупташкан тырмакчалар менен берилген тип катары көрсөтүлүшү мүмкүн .
String str = "Hello World!";
"Салам дүйнө!" тексти менен эч кандай көйгөйлөр жаралbyte, бирок ошол эле текстти түздөн-түз сөздө бөлүп көрсөтүү керек болсочы? Грамматиканын эрежелерин колдонуу менен, “Салам дүйнө!” тексти түрдөгү башкаруу символдорунан тышкары
String
, тике тырмакчага салынышы керек экени айкын болот.
String str = "Java said, "Hello World!"";
Бул параметр иштебейт, анткени компилятор өзгөрмөнүн инициализациясы кайсы учурда бүтөөрүн түшүнбөйт
str
.
Ушул жана ушуга окшош маселелерди чечүү үчүн, ал символдордон качуу үчүн ойлоп табылган , башкача айтканда,
башкаруу символдорун башкаруу ырааттуулугу деп аталган, ошондой эле качуу ырааттуулугу деп аталат . Төмөндө саптарда колдонуу үчүн жарактуу Java Escape ырааттуулугунун тизмеси келтирилген.
\t
— Табылды символу (javaда – төрт боштуктун эквиваленти);
\b
— Текстте бир кадам артка кайтаруучу же саптагы бир символду өчүрүү (backspace);
\n
— жаңы сызык белгиси;
\r
— арабаны кайтаруу белгиси;
\f
— Баракты кийинки беттин башына өтүү;
\'
— Жалгыз цитата белгиси;
\"
— кош тырмакча белгиси;
\\
— Арткы сызык белгиси (
\
). Эми компилятор жазылганды оңой талдай алышы үчүн сөз айкашыбыздагы түз сөздү бөлүп көрөлү.
String str = "Java said, \"Hello World!\"";
Ошентип, эгер өзгөрмөнүн мазмуну
str
экранда көрсөтүлсө, жазылган текст компиляторго да, адамга да түшүнүктүү. Качып кетүү деген эмне экенин жана ал эмне үчүн керек экенин түшүндүк. Жана алар атүгүл кош цитатадан да кутулуп кетишти! Калган качуу ырааттуулугун талдоону уланталы.
Саптагы өтмөк белгиси качуу ырааттуулугу менен көрсөтүлөт
\t
жана төрт боштукка окшош. Бирок, төрт боштуктан турган саптын узундугу төрт символдун узундугуна барабар болсо, анда кошумча белгиси бар саптын узундугу бирге барабар болот.
Таблица символу көбүнчө tableларды же псевдографикалык интерфейс элементтерин куруу үчүн колдонулат , анткени... Бул төрт боштук жазууга караганда ыңгайлуу. Төмөндө псевдографикалык интерфейстин мисалы келтирилген.
Бардык качуу ырааттуулугунун арасында символ,
\b
балким, эң кызыктуусу, анткени ал бизге чыгаруу сапындагы акыркы символду өчүрүүгө мүмкүндүк берет, мисалы, биз аны
артка баскычын басуу менен өчүрүп салсак .
System.out.print("2 + 2 = 5");
System.out.print("\b");
System.out.print("4");
Символдордун жалпы тарыхы
\n
бар
\r
- келгиле, аларды чогуу карайлы.
\n
Сиз мурда сап үзүү белгисин жолуктурган болушуңуз мүмкүн. Мисалы, эгерде ыкма
println()
кийинки чыгаруу жаңы сапта боло тургандай маалыматты чыгарса, анда ыкма
print()
чыгаруудан кийин сап үзүлүшүн аткарbyte, бирок чыгаруунун аягына символ кошсоңуз
\n
, анда сызык үзүлүшү аткарылат.
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
Каретканы кайтаруу белгиси
\r
бизге курсорду чыгаруу сызыгынын башына кайтарууга жана жаңы маалыматты ошол сапта мурда эч нерсе болбогондой көрсөтүүгө мүмкүндүк берет.
System.out.print("Text to be rewritten.");
System.out.print('\r');
System.out.print("New text.");
Чындыгында, вагондорду кайтаруу текстти машинкаларда басып чыгарган мезгилден башталат. Линикти берүү үчүн, арабаны жылдыруу жана рычагды (машинанын механизминин бөлүгү) түшүрүү керек болгон, андан кийин линия берүү аткарылат. Эгер рычаг түшүрүлбөсө, анда ошол эле сызыкта басып чыгарууну улантууга болот. Бул символду көрсөткөндө биз байкаган нерсе
\r
. Ушуга байланыштуу, программист саптарды үзүүнү каалаганда, ал адатынан тышкары, чыгаруунун аягындагы символдордун ырааттуулугун аткарды
\r\n
. Терүү машинкасынын доору аяктагандан кийин, алар машинкада эч качан иштебесе да, ушул ырааттуулукту колдонгон программисттердин мууну пайда болду. Алар көп учурда берилген ырааттуулукту аткаруу үчүн кандай тартипте керек экенин унутуп коюшкан -
\r\n
же
\n\r
. Андан кийин аларга жардамга сыноо сөзү келди
return
, анда бул символдорду көрсөтүү тартиби даана көрүнүп турду. Бирок, кийинчерээк, Windowsтун биринчи versionлары үчүн программалык камсыздоону иштеп чыгууда, MS-DOSтан кийин, программисттер ырааттуулукту колдонууга аргасыз болушкан
\r\n
. Эми бул жөнүндө кабатырлануунун кереги жок жана сызыкты бузуу үчүн символду гана колдонуңуз
\n
.
Келгиле, кайра 80-жылдардын тегерегинде убакытка кайрылалы.
\f
Мына ошондон кийинки беттин башына карай беттин символу популярдуу болуп калды. Ал кезде чоң сызык принтерлери бар болчу, алар менен иштөө үчүн принтер эмнени жана кантип басып чыгаруу керек экенин камтыган программалык codeду жазуу керек болчу. Жана текстти жаңы барактан баштоо керек экенин көрсөтүү үчүн символ колдонулган
\f
. Биздин убакта, бул белги көптөн бери өзүнүн актуалдуулугун жоготкон жана сиз аны эч качан жолуктура албайсыз. Сызыктуу принтердин өлчөмдөрү абдан таасирдүү.
Символдор
\’
жана
\\
бардыгы кош тырмакчадан качкандай эле, макаланын башында мисал бар болчу. Сиз бир тырмакчадан качышыңыз керек, мисалы, символ түрүн бир тырмакча менен инициализациялоо үчүн.
char ch = '\'';
Төмөнкү белги качуу ырааттуулугунун бир бөлүгү болбой турганын көрсөтүү үчүн арткы сызык белгисинен качыңыз.
System.out.println("\\n - line break escape sequence");
Иш жүзүндө, жолдор менен иштөөдө көбүнчө арткы сызыктардан качууга туура келет:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
Мен бул качуу ырааттуулугу саптарда (сап литералдарында) колдонуларын баса белгиледим, анткени алардын калган бөлүгү класстык туруктуу сөз айкаштарын сүрөттөө үчүн колдонулат
Pattern
жана бул макаланын темасына тиешеси жок.
Бул жерден сиз класс үчүн бардык качуу ырааттуулугунун тизмесин көрө аласыз
Pattern
. Бирок белгилей кетүүчү нерсе, азыр алар турган формадагы туруктуу сөз айкаштарын бир гана javaда эмес, башка популярдуу программалоо тилдеринде да, мисалы, PHPде, качуу ырааттуулугун колдонбой элестетүү мүмкүн эмес. Java тorнде символдон качуу сап форматтоодо да колдонулат. Мисалы, пайыздык символду көрсөтүү үчүн сап форматын көрсөтүүдө, пайыздык символду кайталашыңыз керек -
%%
, антпесе биз ката алабыз жана IDE пайызды кошууну сунуштайт.
System.out.printf("Milk fat percentage : %d%%", 10);
Бул макаланы жыйынтыктайт. Сиз каармандардан качуу жана аны кантип иш жүзүндө колдонуу керектиги жөнүндө көп нерсени үйрөндүңүз деп үмүттөнөм. Символдон качуу көптөгөн программалоо тилдерине мүнөздүү. Java тorнде, башка C сыяктуу тилдердей эле, бул технология дээрлик бирдей ишке ашырылат. Ошондуктан, бул макаладан алган бorмиңиз Java тorнде гана эмес, пайдалуу болушу мүмкүн. Көңүл бурганыңыздар үчүн рахмат жана окууңарга ийгorк!
GO TO FULL VERSION