JavaRush /جاوا بلاگ /Random-SD /ڀڄڻ وارا ڪردار

ڀڄڻ وارا ڪردار

گروپ ۾ شايع ٿيل
سلام! پوئين ليڪچرن ۾، اسان اڳ ۾ ئي تارن سان واقف ٿي چڪا آهيون، جيڪي جاوا ۾ طبقي جي نمائندگي ڪن ٿا String. جيئن توهان کي ياد هوندو، هڪ تار آهي اکرن جو هڪ سلسلو. علامتون ڪجھ به ٿي سگھن ٿيون - اکر، انگ، اوقاف جا نشان، وغيره. بنيادي شيء اها آهي ته جڏهن هڪ اسٽرنگ ٺاهي، سڄو تسلسل حوالن ۾ بند ٿيل آهي:
public class Main {
   public static void main(String[] args) {
       String sasha = new String ("Меня зовут Саша, мне 20 лет!");
   }
}
پر ڇا ٿيندو جيڪڏهن اسان کي هڪ تار ٺاهڻ جي ضرورت آهي جنهن ۾ ان جي اندر حوالا پڻ آهن؟ مثال طور، اسان دنيا کي اسان جي پسنديده ڪتاب بابت ٻڌائڻ چاهيون ٿا:
public class Main {
   public static void main(String[] args) {
       String myFavoriteBook = new String ("Моя любимая книга - "Сумерки" Стефани Майер");
   }
}
ڪمپيلر ڪنهن شيءِ سان ناخوش ٿيڻ لڳي! توهان ڇا سوچيو ته غلطي جو سبب ٿي سگهي ٿو، ۽ اهو خاص طور تي حوالن سان ڇو ٿيو؟ حقيقت اها آهي ته گڏ ڪرڻ وارو حوالن کي سختي سان بيان ڪيل طريقي سان سمجهي ٿو، يعني، اهو انهن ۾ هڪ تار لپي ٿو. ۽ هر ڀيري هو هڪ ڪردار کي ڏسندو آهي "، هو توقع ڪندو آهي ته اهو ساڳيو ڪردار ان جي پيروي ڪندو، ۽ انهن جي وچ ۾ لڪير جو متن هوندو، جيڪو هن کي، مرتب ڪندڙ، ٺاهڻ گهرجي. اسان جي صورت ۾، لفظ "Twilight" جي چوڌاري اقتباس جا نشان ٻين حوالن جي نشانين جي اندر آهن . ۽ جڏهن مرتب ڪندڙ متن جي هن ٽڪري تي اچي ٿو، اهو صرف اهو نه ٿو سمجهي ته هو ان مان ڇا چاهين ٿا. اهو لڳي ٿو ته هڪ اقتباس آهي، جنهن جو مطلب آهي ته اهو هڪ تار ٺاهڻ گهرجي. پر هو اڳ ۾ ئي ڪري رهيو آهي! اهو ئي سبب آهي. بس ڪر، هن نقطي تي مرتب ڪندڙ غلط سمجهي ٿو ته هو ان کان ڇا چاهين ٿا. "هڪ ٻيو اقتباس؟ ڇا هي ڪنهن قسم جي غلطي آهي؟ مان پهريان ئي هڪ اسٽرنگ ٺاهي رهيو آهيان! يا مون کي هڪ ٻيو ٺاهڻ گهرجي؟ Uhhh...:/" اسان کي مرتب ڪندڙ کي وضاحت ڪرڻ جي ضرورت آهي جڏهن ڪو اقتباس ان لاءِ حڪم آهي (" هڪ اسٽرنگ ٺاهيو!")، ۽ جڏهن اهو هڪ سادي علامت آهي ("ڏسو لفظ "گودھي" کي حوالن جي نشانين سان گڏ!"). هن کي حاصل ڪرڻ لاء، جاوا استعمال ڪري ٿو ڪردار فرار . اهو هڪ خاص ڪردار استعمال ڪندي ڪيو ويندو آهي. هن وانگر: \. عام زندگيءَ ۾ ان کي ”بيڪ سليش“ چئبو آهي، پر جاوا ۾ ان کي (بچڻ واري ڪردار جي ميلاپ ۾) فرار ٿيڻ جو سلسلو چئبو آهي . مثال طور، \"هتي اهو آهي - اسڪرين تي حوالن کي ڏيکارڻ لاء هڪ ڪنٽرول ترتيب. توهان جي ڪوڊ جي اندر اهڙي تعمير کي منهن ڏيڻ کان پوء، گڏ ڪرڻ وارو سمجھندو ته اهو صرف هڪ "اقتباس" ڪردار آهي جيڪو اسڪرين تي ظاهر ٿيڻ جي ضرورت آهي. اچو ته ڪتاب سان اسان جي ڪوڊ کي تبديل ڪرڻ جي ڪوشش ڪريو:
public static void main(String[] args) {
       String myFavoriteBook = new String ("Моя любимая книга - \"Сумерки\" Стефани Майер");
       System.out.println(myFavoriteBook);
   }
}
اسان هڪ سان گڏ ٻه "اندروني" حوالا فرار ٿي ويا \. اچو ته طريقي کي هلائڻ جي ڪوشش ڪريون main()... ڪنسول آئوٽ:

Моя любимая книга - "Сумерки" Стефани Майер
عظيم، ڪوڊ بلڪل ڪم ڪيو جيئن ضرورت هجي! حوالا صرف ان صورت کان پري آهن جتي اسان کي ڪردار کان فرار ٿيڻ جي ضرورت هجي. مثال طور، اسان ڪنهن کي پنهنجي ڪم بابت ٻڌائڻ چاهيون ٿا:
public class Main {
   public static void main(String[] args) {
       String workFiles= new String ("Мои рабочие файлы лежат в папке D:\Work Projects\java");
       System.out.println(workFiles);
   }
}
۽ ٻيهر هڪ غلطي! ڇا توهان اڳ ۾ ئي اندازو لڳائي سگهو ٿا ته ڪهڙو سبب آهي؟ مرتب ڪندڙ کي وري سمجھ ۾ نه ٿو اچي ته ڇا ڪجي. سڀ کان پوء، هن لاء هڪ علامت هڪ ڪنٽرول تسلسل\ کان وڌيڪ ڪجھ به نه آهي ! اهو توقع رکي ٿو ته سليش کان پوء اتي ڪجهه ڪردار هجڻ گهرجي ته ان کي ڪجهه خاص طريقي سان تفسير ڪرڻو پوندو (مثال طور، ڪوٽا نشان). بهرحال، هتي باقاعده اکر پٺيان. تنهنڪري مرتب ڪندڙ ٻيهر پريشان آهي. ڇا ڪجي؟ بلڪل ائين ئي جيئن گذريل ڀيري: بس اسان ۾ هڪ وڌيڪ شامل ڪريو ! \\\
public class Main {

   public static void main(String[] args) {

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

   }
}
اچو ته ڏسون ان مان ڇا نڪرندو آهي: ڪنسول آئوٽ:

Мои рабочие файлы лежат в папке D:\Work Projects\java
سپر! مرتب ڪندڙ فوري طور تي طئي ڪيو ته اهي \عام علامتون آهن جن کي ڪنسول ڏانهن آئوٽ ڪرڻ جي ضرورت آهي باقي سان گڏ. جاوا ۾ ڪافي ٿورا فرار جا سلسلو آھن. هتي انهن جي مڪمل فهرست آهي:
  • \t ٽيب ڪردار.
  • \b متن ۾ هڪ واپسي ڪردار هڪ قدم پوئتي يا هڪ لڪير ۾ هڪ ڪردار کي حذف ڪرڻ (بيڪ اسپيس).
  • \n نئون ڪردار.
  • \r گاڏي جي واپسي جو ڪردار.
  • \f صفحو هلائڻ.
  • \' واحد اقتباس وارو ڪردار.
  • \" ٻٽي اقتباس وارو ڪردار.
  • \\backslash ڪردار (\).
اهڙيءَ طرح، جيڪڏهن مرتب ڪندڙ متن ۾ هڪ علامت سان منهن ڏئي ٿو \n، اهو سمجهي سگهندو ته اهو صرف هڪ علامت ۽ خط ناهي جنهن کي ڪنسول ڏانهن آئوٽ ڪرڻ جي ضرورت آهي، پر ان لاءِ هڪ خاص حڪم - "ڪيڪ هڪ لائن بريڪ!" مثال طور، اهو اسان لاءِ ڪارائتو ٿي سگهي ٿو جيڪڏهن اسان چاهيون ٿا ته نظم جو هڪ ٽڪرو ڪنسول ڏانهن:
public class Main {
   public static void main(String[] args) {
       String borodino = new String ("Скажи-ка, дядя, \nВедь не даром \nМосква, спаленная пожаром, \nФранцузу отдана?");
       System.out.println(borodino);
   }
}
۽ اھو اھو آھي جيڪو اسان حاصل ڪيو: ڪنسول آئوٽ:

Скажи-ка, дядя, 
Ведь не даром 
Москва, спаленная пожаром, 
Французу отдана?
بلڪل ڇا جي ضرورت آهي! مرتب ڪندڙ فرار جي ترتيب کي سڃاڻي ورتو ۽ 4 لائنن ۾ آيت جو هڪ ٽڪرو ڪڍيو.

يونيڪوڊ

هڪ ٻيو اهم موضوع جنهن بابت توهان کي ڄاڻڻ جي ضرورت آهي ڪردار کان فرار ٿيڻ جي سلسلي ۾ يونيڪوڊ آهي . يونيڪوڊ هڪ ڪردار انڪوڊنگ معيار آهي جنهن ۾ دنيا جي لڳ ڀڳ سڀني لکيل ٻولين جا اکر شامل آهن. ٻين لفظن ۾، هي خاص ڪوڊ جي هڪ فهرست آهي، جنهن ۾ ڪنهن به ٻوليء جي تقريبا ڪنهن به ڪردار لاء ڪوڊ آهي! قدرتي طور تي، هي فهرست تمام وڏي آهي ۽ ڪو به ان کي دل سان نه سکندو آهي :) جيڪڏهن توهان دلچسپي وٺندا آهيو ته اهو ڪٿان آيو آهي ۽ ڇو ان جي ضرورت هئي، پڙهو حبربر تي معلوماتي مضمون . يونيڪوڊ ۾ سڀ اکر ڪوڊ ”اکر u+ هيڪساڊيڪل ڊيجٽ“ آهن. مثال طور، ڪاپي رائيٽ جي مشهور علامت جو اشارو ڪيو ويو آهي ڪوڊ u00A9 . تنهن ڪري، جيڪڏهن توهان کي هن ڪردار کي استعمال ڪرڻ جي ضرورت آهي جڏهن جاوا ۾ ٽيڪسٽ سان ڪم ڪري، توهان ان کي پنهنجي متن ۾ بچائي سگهو ٿا! مثال طور، اسان سڀني کي ٻڌائڻ چاهيون ٿا ته هي ليڪچر جاوا رش پاران ڪاپي رائيٽ ٿيل آهي:
public class Main {
   public static void main(String[] args) {
       System.out.println("Лекция \"Экранирование символов\", \u00A9 2018 Javarush");
   }
}
ڪنسول آئوٽ:

Лекция "Экранирование символов", © 2018 Javarush
عظيم، سڀ ڪجهه ڪم ڪيو! پر خاص ڪردار سڀ ڪجهه نه آهن! يونيڪوڊ ۽ ڪردار کان بچڻ سان، توهان هڪ ئي وقت مختلف ٻولين ۾ لکيل متن کي انڪوڊ ڪري سگهو ٿا. ۽ جيتوڻيڪ ساڳي ٻولي جي ڪيترن ئي مختلف ٻولين ۾!
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");
   }
}
ڪنسول آئوٽ:

Ма́о Цзэду́н (кит. трад. 毛澤東, упр. 毛泽东, пиньинь: Máo Zédōng) — китайский государственный и политический деятель XX века, главный теоретик маоизма.
هن مثال ۾، ڪردارن جي ڪوڊن کي ڄاڻڻ سان، اسان هڪ اسٽرنگ لکيو آهي جنهن ۾ سيريلڪ الفابيٽ ۽ ٽن (!) چيني اکرن جي مختلف قسم جا نوٽشن شامل آهن - ڪلاسيڪل، آسان ۽ لاطيني (پنين). اهو بنيادي طور تي آهي! هاڻي توهان هن اوزار کي پنهنجي ڪم ۾ استعمال ڪرڻ لاء ڪردار فرار ٿيڻ بابت ڪافي ڄاڻو ٿا :) جيڪڏهن سڀ ڪجهه مڪمل طور تي واضح نه آهي، آئون توهان کي هن مضمون پڙهڻ جي صلاح ڏيان ٿو : اهو هڪ سٺو اضافو ٿيندو.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION