JavaRush /Java Blog /Random-TK /Nyşanlardan gaçmak

Nyşanlardan gaçmak

Toparda çap edildi
Salam! Öňki leksiýalarda, Java-da synp tarapyndan görkezilen setirler bilen eýýäm tanyş bolduk String. Probablyadyňyzda bolsa, setir simwollaryň yzygiderliligi. Nyşanlar islendik zat bolup biler - harplar, sanlar, dyngy belgileri we ş.m. Esasy zat, setir döredilende tutuş yzygiderlilik sitata goşulýar:
public class Main {
   public static void main(String[] args) {
       String sasha = new String ("Меня зовут Саша, мне 20 лет!");
   }
}
Itöne içindäki sitatalar bolan setir döretmeli bolsa näme bolar? Mysal üçin, dünýäni halaýan kitabymyz hakda aýtmak isleýäris:
public class Main {
   public static void main(String[] args) {
       String myFavoriteBook = new String ("Моя любимая книга - "Сумерки" Стефани Майер");
   }
}
Düzediji bir zatdan nägile ýaly görünýär! Siziň pikiriňizçe ýalňyşlygyň sebäbi näme bolup biler we näme üçin ýörite sitatalar bilen ýüze çykdy? Hakykat, düzüjiniň sitatalary berk kesgitlenen görnüşde kabul etmegidir, ýagny, olara bir setir baglaýar. Her gezek bir gahrymany göreninde ", şol bir gahrymanyň özüne eýerjekdigine garaşýar we olaryň arasynda düzüjiniň döretmeli setiriniň teksti bolar. Biziň ýagdaýymyzda, "Twilight" sözüniň töweregindäki sitata bellikleri beýleki sitata bellikleriniň içinde . Haçan-da düzüji bu tekste gelende, ondan näme isleýändigine düşünmeýär. Bir setir bar ýaly, bir setir döretmeli. Emma ol muny eýýäm edýär! Munuň sebäbi hut şu. Plyönekeý söz bilen aýdanyňda, bu wagt düzüjiniň isleýän zadyna düşünmeýär. "Başga bir sitata? Bu bir hili ýalňyşlykmy? Men eýýäm setir döredýärin! Ora-da başga birini döretmelimi? Uhhh ...: /" Sitata buýruk berlende düzüjä düşündirmeli (" setir dörediň! ") we ýönekeý nyşan bolanda (" Twilight "sözüni sitata bellikleri bilen bilelikde görkeziň!"). Muňa ýetmek üçin Java, gaçmak häsiýetini ulanýar . Bu aýratyn nyşan ulanyp edilýär. Şuňa meňzeş : \. Adaty durmuşda oňa "yza gaýtmak" diýilýär, ýöne Java-da (gaçmaly nyşan bilen bilelikde) gaçmak yzygiderliligi diýilýär . Mysal üçin, \"şu ýerde - ekranda sitatalary görkezmek üçin dolandyryş yzygiderliligi. Koduňyzyň içinde şeýle gurluşyk bilen ýüzbe-ýüz bolansoň, düzüji munuň diňe ekranda görkezilmeli “sitata” nyşanydygyna düşüner. Kodumyzy kitap bilen üýtgetmäge synanyşalyň:
public static void main(String[] args) {
       String myFavoriteBook = new String ("Моя любимая книга - \"Сумерки\" Стефани Майер");
       System.out.println(myFavoriteBook);
   }
}
Iki "içki" sitatadan a bilen gaçdyk \. Usuly işletmäge synanyşalyň main()... Konsol çykyşy:

Моя любимая книга - "Сумерки" Стефани Майер
Gowy, kod gerek bolşy ýaly işledi! Sitatlar, häsiýetiň gaçmagy zerur bolan ýeke-täk ýagdaýdan uzakda. Mysal üçin, işimiz hakda birine aýtmak isledik:
public class Main {
   public static void main(String[] args) {
       String workFiles= new String ("Мои рабочие файлы лежат в папке D:\Work Projects\java");
       System.out.println(workFiles);
   }
}
Againene-de ýalňyşlyk! Munuň sebäbini eýýäm çaklap bilersiňizmi? Düzediji ýene näme etmelidigine düşünmeýär. Galyberse-de, onuň üçin nyşan dolandyryş yzygiderliliginden\ başga zat däl ! Çyzgydan soň haýsydyr bir aýratyn manyda (mysal üçin, sitata belligi) düşündirmeli käbir nyşanlaryň bolmalydygyna garaşýar. Şeýle-de bolsa, bu ýerde yzygiderli harplar gelýär. Şonuň üçin düzüji ýene bulaşdy. Näme etmeli? Geçen gezekki ýaly edil şonuň ýaly: diňe birine goşuň ! \\\
public class Main {

   public static void main(String[] args) {

       String workFiles= new String ("Мои рабочие файлы лежат в папке D:\\Work Projects\\java");
       System.out.println(workFiles);

   }
}
Munuň näme çykýandygyny göreliň: Konsol çykyşy:

Мои рабочие файлы лежат в папке D:\Work Projects\java
Super! Düzüji, bularyň \galanlary bilen birlikde konsola çykmaly adaty nyşanlardygyny derrew kesgitledi. Java-da gaçmagyň yzygiderliligi gaty az. Ine, olaryň doly sanawy:
  • \t goýmanyň nyşany.
  • \b tekstdäki yzyna gaýtarma nyşany bir ädim yza ýa-da bir setirde (arka giňişlik) pozulmagy.
  • \n täze setir
  • \r wagonyň gaýdyp geliş häsiýeti
  • \f sahypa işlemek.
  • \' ýekeje sitata
  • \" goşa sitata
  • \\yzky nyşan (\).
Şeýlelik bilen, düzüji tekstdäki bir nyşan bilen ýüzbe-ýüz bolsa \n, munuň diňe bir konsola çykarylmaly nyşan we harp däl-de, eýsem onuň üçin ýörite buýruk - “setir kesiň!” Düşüner. Mysal üçin, goşgynyň bir bölegini konsola çykarmak islesek, bu biziň üçin peýdaly bolup biler:
public class Main {
   public static void main(String[] args) {
       String borodino = new String ("Скажи-ка, дядя, \nВедь не даром \nМосква, спаленная пожаром, \nФранцузу отдана?");
       System.out.println(borodino);
   }
}
Ine, şu aldyk: Konsol çykyşy:

Скажи-ка, дядя, 
Ведь не даром 
Москва, спаленная пожаром, 
Французу отдана?
Takyk näme gerek! Düzüji gaçmagyň yzygiderliligini tanady we 4 setirde bir aýat çykardy.

Icunikod

Nyşanlaryň gaçmagy bilen baglanyşykly bilmeli ýene bir möhüm mowzugyňyz “Unicode” . “Unicode” , dünýäniň ähli ýazylan dillerindäki nyşanlary öz içine alýan nyşan kodlaýyş standarty. Başga bir söz bilen aýdylanda, bu ýörite kodlaryň sanawy, onda islendik dilde islendik nyşan üçin kod bar! Elbetde, bu sanaw gaty uly we hiç kim ony ýatdan öwrenmeýär :) Eger nireden gelendigi we näme üçin zerurdygy bilen gyzyklanýan bolsaňyz, Habrahabr baradaky maglumatly makalany okaň . “Unicode” -daky ähli nyşan kodlary “harp u+ alty sanly san”. Mysal üçin, meşhur awtorlyk hukugy nyşany u00A9 kody bilen görkezilýär . Şeýlelik bilen, Java-da tekst bilen işleýän wagtyňyz bu belgini ulanmaly bolsaňyz, tekstiňizde gaçyp bilersiňiz! Mysal üçin, bu leksiýanyň JavaRush tarapyndan awtorlyk hukugynyň bardygyny hemmelere habar bermek isleýäris:
public class Main {
   public static void main(String[] args) {
       System.out.println("Лекция \"Экранирование символов\", \u00A9 2018 Javarush");
   }
}
Konsol çykyşy:

Лекция "Экранирование символов", © 2018 Javarush
Gowy, hemme zat netije berdi! Specialöne ýörite gahrymanlar hemme zat däl! “Unicode” we nyşanlaryň gaçmagy bilen bir wagtyň özünde dürli dillerde ýazylan teksti kodlap bilersiňiz. Hatda şol bir diliň birnäçe dürli şiwelerinde-de!
public class Main {
   public static void main(String[] args) {

       System.out.println("\u041c\u0430\u0301\u043e " +
               "\u0426\u0437\u044d\u0434\u0443\u0301\u043d " +
               "\u0028\u043a\u0438\u0442\u002e \u0442\u0440\u0430\u0434\u002e " +
               "\u6bdb\u6fa4\u6771\u002c \u0443\u043f\u0440\u002e " +
               "\u6bdb\u6cfd\u4e1c\u002c \u043f\u0438\u043d\u044c\u0438\u043d\u044c\u003a " +
               "\u004d\u00e1\u006f \u005a\u00e9\u0064\u014d\u006e\u0067\u0029 " +
               "\u2014 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 " +
               "\u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 " +
               "\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 " +
               "\u0434\u0435\u044f\u0442\u0435\u043b\u044c \u0058\u0058 \u0432\u0435\u043a\u0430\u002c " +
               "\u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u043a " +
               "\u043c\u0430\u043e\u0438\u0437\u043c\u0430\u002e");
   }
}
Konsol çykyşy:

Ма́о Цзэду́н (кит. трад. 毛澤東, упр. 毛泽东, пиньинь: Máo Zédōng) — китайский государственный и политический деятель XX века, главный теоретик маоизма.
Bu mysalda, nyşanlaryň kodlaryny bilip, kiril elipbiýinden we hytaý nyşanlarynyň üç (!) Dürli görnüşinden - klassiki, ýönekeýleşdirilen we latynça (pinyin) bir setir ýazdyk. Bu esasan! Indi bu guraly işiňizde ulanmak üçin gaçmak barada ýeterlik bilýärsiňiz :) Hemme zat doly düşnüksiz bolsa, size bu makalany okamagyňyzy maslahat berýärin : gowy goşundy bolar.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION