JavaRush /Java Blog /Random-TL /Pagtakas sa mga character sa Java
Oleksandr Klymenko
Antas
Харків

Pagtakas sa mga character sa Java

Nai-publish sa grupo
Nagkaproblema! Ang artikulong ito ay isinulat bilang isang pagsubok na takdang-aralin para sa isang posisyon sa koponan ng JavaRush. At ito ay isinulat bilang isang ganap na panayam. Dahil dito, ginagarantiya ko sa iyo ang kalidad at dami ng kapaki-pakinabang na kaalaman na naipon sa post na ito. Bilang karagdagan sa praktikal at teoretikal na impormasyon, naglalaman ang artikulo ng mga kagiliw-giliw na katotohanan na maaaring hindi mo alam! Pagtakas sa mga character sa Java - 1Hello Mundo! Ang pagtakas ng karakter ay isang napaka-interesante at kinakailangang teknikal na solusyon. Ang pangangailangan para sa pagtakas ng karakter ay may mahalagang papel sa kasaysayan ng buong industriya ng programming. Sa artikulong ito, pag-uusapan natin kung ano ang character escaping, kung bakit kailangang takasan ang mga ito, at kung paano ipinapatupad ang character escaping sa Java. Ang artikulo ay magbibigay ng mga halimbawa at kawili-wiling mga katotohanan na may kaugnayan sa paksa ng pagtakas ng karakter. Enjoy reading! Ang lahat ng impormasyon sa isang computer system ay kinakatawan sa anyo ng teksto, na sa isang mas mababang antas ay kinakatawan ng mga byte. Kapag nagsusulat tayo ng liham o mensahe, nagta-type tayo ng text na mauunawaan ng isang tao. Kapag nagsusulat kami ng code sa IDE, nagta-type kami ng teksto na maaaring i-parse ng compiler. Sa Java, maaaring katawanin ang text bilang isang uri Stringna ang data ay kinakatawan ng mga control character - ipinares na mga quote.
String str = "Hello World!";
Gamit ang tekstong "Hello World!" walang problemang bumangon, ngunit paano kung ang parehong teksto ay kailangang i-highlight sa direktang pagsasalita? Gamit ang mga alituntunin ng grammar, nagiging malinaw na ang tekstong "Hello World!", bilang karagdagan sa mga kontrol na character mula sa uri String, ay dapat ilagay sa mga direktang quote sa pagsasalita.
String str = "Java said, "Hello World!"";
Ang pagpipiliang ito ay hindi gagana, dahil ang compiler ay hindi lang mauunawaan kung saang punto magtatapos ang pagsisimula ng variable str. Upang malutas ito at ang mga katulad na problema, ito ay naimbento upang makatakas sa mga character , iyon ay, baguhin ang mga control character sa tinatawag na control sequence, na kilala rin bilang escape sequence . Nasa ibaba ang isang listahan ng wastong java escape sequence para gamitin sa mga string. \t — Tab character (sa java – katumbas ng apat na puwang); \b— Isang bumalik na karakter sa teksto nang isang hakbang pabalik o nagtanggal ng isang karakter sa isang linya (backspace); \n— Bagong simbolo ng linya; \r- Simbolo ng pagbabalik ng karwahe; \f— Laktawan ang pahina sa simula ng susunod na pahina; \'— Isang character na quote; \"- Dobleng quote na character; \\— Ang karakter ng backslash ( \). Ngayon ay i-highlight natin ang direktang pagsasalita sa ating parirala upang madaling ma-parse ng compiler ang nakasulat.
String str = "Java said, \"Hello World!\"";
Kaya, ang nakasulat na teksto ay mauunawaan sa parehong compiler at isang tao kung ang mga nilalaman ng variable stray ipinapakita sa screen. Nalaman namin kung anong karakter ang pagtakas at kung bakit ito kailangan. At nakatakas pa sila sa double quote character! Magpatuloy tayo sa pag-parse ng mga natitirang sequence ng pagtakas. Ang character ng tab sa isang linya ay ipinahiwatig ng isang escape sequence \tat kahalintulad sa apat na espasyo. Gayunpaman, kung ang haba ng isang string na binubuo ng apat na puwang ay katumbas ng haba ng apat na character, ang haba ng isang string na may tab na character ay magiging katumbas ng isa. Ang karakter ng tab ay kadalasang ginagamit upang bumuo ng mga talahanayan o pseudo-graphic na mga elemento ng interface, dahil... Ito ay mas maginhawa kaysa sa pagsulat ng apat na puwang. Nasa ibaba ang isang halimbawa ng isang pseudo-graphical na interface. Pagtakas sa mga character sa Java - 2Sa lahat ng mga pagkakasunud-sunod ng pagtakas, ang simbolo ay \bmarahil ang pinaka-kawili-wili, dahil pinapayagan kaming tanggalin ang huling character sa linya ng output, katulad ng kung binura namin ito sa pamamagitan ng pagpindot sa backspace key .
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
Ang mga simbolo \nay may \riisang kasaysayan - sabay nating tingnan ang mga ito. Maaaring naranasan mo na ang line break na character \nnoon. Halimbawa, kung ang isang pamamaraan println()ay naglalabas ng impormasyon upang ang susunod na output ay nasa isang bagong linya, ang pamamaraan print()ay hindi nagsasagawa ng isang line break pagkatapos ng output, ngunit kung nagdagdag ka ng isang character sa dulo ng output \n, pagkatapos ay isang line break isasagawa.
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
Ang carriage return character \ray nagbibigay-daan sa amin na ibalik ang cursor sa simula ng linya ng output at magpakita ng bagong impormasyon na parang walang dati sa linyang iyon.
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."
Sa katunayan, ang pagbabalik ng karwahe ay nagsimula noong mga araw na ang teksto ay inilimbag sa mga makinilya. Upang maisagawa ang isang line feed, kinakailangan upang ilipat ang karwahe at ibaba ang pingga (bahagi ng mekanismo ng makinilya), pagkatapos nito ay isasagawa ang line feed. Kung ang pingga ay hindi ibinaba, kung gayon ang isa ay maaaring magpatuloy sa pag-print sa parehong linya. Ito ang ating naoobserbahan kapag ipinapakita natin ang simbolo \r. Sa bagay na ito, kapag ang programmer ay gustong magsagawa ng isang line break, siya, sa labas ng ugali, ay nagsagawa ng isang pagkakasunod-sunod ng mga character sa dulo ng output \r\n. Sa pagtatapos ng panahon ng makinilya, mayroong isang henerasyon ng mga programmer na gumagamit pa rin ng pagkakasunud-sunod na ito, kahit na hindi pa sila nagtrabaho sa isang makinilya mismo. Madalas nilang nakalimutan kung aling pagkakasunud-sunod ang kailangan nila upang makumpleto ang isang naibigay na pagkakasunod-sunod - \r\no \n\r. Pagkatapos ay isang pagsubok na salita ang dumating sa kanilang tulong return, kung saan ang pagkakasunud-sunod kung saan ipinakita ang mga simbolo na ito ay malinaw na nakikita. Gayunpaman, sa paglaon, kapag bumubuo ng software para sa mga unang bersyon ng Windows, pagkatapos ng MS-DOS, napilitan ang mga programmer na gamitin ang sequence \r\n. Ngayon, hindi mo na kailangang mag-alala tungkol dito at gamitin lamang ang karakter upang masira ang isang linya \n. Pagtakas sa mga Character sa Java - 3Muli tayong bumalik sa nakaraan, noong mga dekada 80. Noon \fnaging tanyag ang simbolo para sa pahinang pasulong sa simula ng susunod na pahina. Sa oras na iyon, may mga malalaking linya ng printer, upang gumana kung saan kinakailangan na magsulat ng code ng programa na naglalaman ng kung ano at paano dapat i-print ang printer. At upang ipahiwatig na ang teksto ay dapat magsimula sa isang bagong pahina, ginamit ang simbolo \f. Sa ating panahon, ang simbolo na ito ay matagal nang nawala ang kaugnayan nito, at malamang na hindi mo ito makikita. Ang mga sukat ng linear printer ay medyo kahanga-hanga. Pagtakas sa mga Character sa Java - 4Sa mga simbolo \’at \\lahat ay eksaktong kapareho ng sa pagtakas ng dobleng quote, mayroong isang halimbawa sa simula ng artikulo. Kakailanganin mong takasan ang isang quote, halimbawa, upang masimulan ang uri ng char na may isang solong quote.
char ch = '\'';
Itakas ang backslash na character upang isaad na ang sumusunod na character ay hindi magiging bahagi ng escape sequence.
System.out.println("\\n - line break escape sequence");
// Output: \n - line break escape sequence
Sa pagsasagawa, madalas na kailangan mong takasan ang mga backslash kapag nagtatrabaho sa mga landas:
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"
Idiniin ko na ang mga escape sequence na ito ay ginagamit sa mga string (string literals), dahil ang iba pa sa mga ito ay ginagamit upang ilarawan ang mga regular na expression ng klase Patternat hindi nauugnay sa paksa ng artikulong ito. Dito makikita mo ang isang listahan ng lahat ng pagkakasunud-sunod ng pagtakas para sa klase Pattern. Gayunpaman, ito ay nagkakahalaga ng noting na ang mga regular na expression sa anyo kung saan sila umiiral ngayon ay hindi maaaring isipin nang walang paggamit ng mga escape sequence, hindi lamang sa java, kundi pati na rin sa iba pang mga sikat na programming language, halimbawa, PHP. Sa java, ang character escaping ay ginagamit din sa pag-format ng string. Halimbawa, kapag tinukoy ang format ng string para sa pagpapakita ng simbolo ng porsyento, dapat mong i-duplicate ang simbolo ng porsyento - %%, kung hindi, magkakaroon kami ng error, at ipo-prompt ka ng IDE na idagdag ang porsyento.
System.out.printf("Milk fat percentage : %d%%", 10);
// Milk fat percentage : 10%
Ito ang nagtatapos sa artikulo. Sana ay marami kang natutunan tungkol sa pagtakas ng karakter at kung paano ito isasagawa. Likas sa maraming programming language ang pag-escape ng character. Sa java, tulad ng sa iba pang mga C-like na wika, ang teknolohiyang ito ay ipinatupad halos magkapareho. Samakatuwid, ang kaalaman na makukuha mo mula sa artikulong ito ay maaaring maging kapaki-pakinabang hindi lamang sa java. Salamat sa iyong pansin at good luck sa iyong pag-aaral!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION