JavaRush /جاوا بلاگ /Random-UR /جاوا میں فرار ہونے والے کردار
Oleksandr Klymenko
سطح
Харків

جاوا میں فرار ہونے والے کردار

گروپ میں شائع ہوا۔
کچھ غلط ہو گیا! یہ مضمون JavaRush ٹیم میں پوزیشن کے لیے ٹیسٹ اسائنمنٹ کے طور پر لکھا گیا تھا۔ اور اسے ایک مکمل لیکچر کے طور پر لکھا گیا۔ اس وجہ سے، میں آپ کو اس پوسٹ میں جمع کردہ مفید علم کے معیار اور مقدار کی ضمانت دیتا ہوں۔ عملی اور نظریاتی معلومات کے علاوہ مضمون میں ایسے دلچسپ حقائق ہیں جن کے بارے میں شاید آپ کو علم بھی نہ ہو! جاوا میں فرار ہونے والے کردار - 1ہیلو ورلڈ! کردار سے فرار ایک بہت ہی دلچسپ اور ضروری تکنیکی حل ہے۔ کردار سے فرار کی ضرورت نے پوری پروگرامنگ انڈسٹری کی تاریخ میں ایک اہم کردار ادا کیا ہے۔ اس آرٹیکل میں، ہم اس بارے میں بات کریں گے کہ کریکٹر ایسکیپنگ کیا ہے، ان سے فرار ہونے کی ضرورت کیوں ہے، اور جاوا میں کریکٹر ایسکیپنگ کو کیسے لاگو کیا جاتا ہے۔ یہ مضمون کردار سے فرار کے موضوع سے متعلق مثالیں اور دلچسپ حقائق فراہم کرے گا۔ پڑھنے سے لطف اندوز! کمپیوٹر سسٹم میں تمام معلومات کو متن کی شکل میں پیش کیا جاتا ہے، جس کی نچلی سطح پر بائٹس کے ذریعے نمائندگی کی جاتی ہے۔ جب ہم کوئی خط یا پیغام لکھتے ہیں تو ہم متن ٹائپ کرتے ہیں جو کسی شخص کے لیے سمجھ میں آتا ہے۔ جب ہم IDE میں کوڈ لکھتے ہیں تو ہم ٹیکسٹ ٹائپ کرتے ہیں جسے کمپائلر پارس کر سکتا ہے۔ جاوا میں، متن کو ایک قسم کے طور پر پیش کیا جا سکتا ہے Stringجس کے ڈیٹا کو کنٹرول کریکٹرز - paired quotes کے ذریعے دکھایا جاتا ہے۔
String str = "Hello World!";
متن کے ساتھ "ہیلو ورلڈ!" کوئی مسئلہ پیدا نہیں ہوتا، لیکن اگر اسی متن کو براہ راست تقریر میں اجاگر کرنے کی ضرورت ہو تو کیا ہوگا؟ گرامر کے اصولوں کا استعمال کرتے ہوئے، یہ واضح ہو جاتا ہے کہ متن "ہیلو ورلڈ!"، قسم کے حروف کو کنٹرول کرنے کے علاوہ String، براہ راست تقریر کے اقتباسات میں بھی رکھا جانا چاہیے۔
String str = "Java said, "Hello World!"";
یہ آپشن کام نہیں کرے گا، کیونکہ مرتب کرنے والا صرف یہ نہیں سمجھ پائے گا کہ متغیر کی ابتداء کس مقام پر ختم ہوتی ہے str۔ اس اور اسی طرح کے مسائل کو حل کرنے کے لیے، اس کی ایجاد کی گئی تھی کہ کریکٹرز فرار ہو جائیں ، یعنی کنٹرول کریکٹرز کو نام نہاد کنٹرول سیکوئنسز میں تبدیل کریں، جسے فرار کی ترتیب بھی کہا جاتا ہے ۔ ذیل میں سٹرنگز میں استعمال کے لیے جاوا فرار کے درست سلسلے کی ایک فہرست ہے۔ \t - ٹیب کریکٹر (جاوا میں - چار خالی جگہوں کے برابر)؛ \b- متن میں ایک واپسی کیریکٹر ایک قدم پیچھے یا ایک لائن میں ایک حرف کو حذف کرنا (بیک اسپیس)؛ \n- نئی لائن علامت؛ \r- گاڑی کی واپسی کی علامت؛ \f- صفحہ کو چھوڑ کر اگلے صفحے کے آغاز پر جائیں؛ \'- ایک اقتباس کردار؛ \"- ڈبل اقتباس کردار؛ \\- بیک سلیش کردار ( \) اب آئیے اپنے فقرے میں براہ راست تقریر کو نمایاں کریں تاکہ مرتب کرنے والا آسانی سے لکھی ہوئی بات کو پارس کر سکے۔
String str = "Java said, \"Hello World!\"";
اس طرح، تحریری متن مرتب کرنے والے اور ایک شخص دونوں کے لیے قابل فہم ہے اگر متغیر کے مواد کو strاسکرین پر ظاہر کیا جائے۔ ہم نے سوچا کہ کردار سے فرار کیا ہے اور اس کی ضرورت کیوں ہے۔ اور وہ ڈبل کوٹ کردار سے بھی بچ گئے! آئیے فرار ہونے کے بقیہ سلسلے کو پارس کرنے کے لیے آگے بڑھتے ہیں۔ ایک لائن میں ٹیب کیریکٹر کو فرار کی ترتیب سے ظاہر کیا جاتا ہے \tاور یہ چار خالی جگہوں کے مشابہ ہے۔ تاہم، اگر چار خالی جگہوں پر مشتمل سٹرنگ کی لمبائی چار حروف کی لمبائی کے برابر ہے، تو ٹیب کیریکٹر والی سٹرنگ کی لمبائی ایک کے برابر ہوگی۔ ٹیب کیریکٹر اکثر ٹیبلز یا سیوڈو گرافک انٹرفیس عناصر کی تعمیر کے لیے استعمال ہوتا ہے، کیونکہ... یہ چار اسپیس لکھنے سے زیادہ آسان ہے۔ ذیل میں سیوڈو گرافیکل انٹرفیس کی ایک مثال ہے۔ جاوا میں فرار ہونے والے کردار - 2فرار کی تمام ترتیبوں میں، علامت \bشاید سب سے زیادہ دلچسپ ہے، کیونکہ یہ ہمیں آؤٹ پٹ لائن میں آخری کریکٹر کو حذف کرنے کی اجازت دیتا ہے، جیسا کہ ہم نے اسے بیک اسپیس کلید کو دبانے سے مٹا دیا ہے ۔
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
علامتوں کی ایک مشترکہ تاریخ \nہے \r- آئیے ان کو ایک ساتھ دیکھیں۔ \nہو سکتا ہے کہ آپ کو پہلے لائن بریک کریکٹر کا سامنا کرنا پڑا ہو۔ مثال کے طور پر، اگر کوئی طریقہ println()معلومات کو آؤٹ پٹ کرتا ہے تاکہ اگلی آؤٹ پٹ نئی لائن پر ہو، تو طریقہ print()آؤٹ پٹ کے بعد لائن بریک نہیں کرتا ہے، لیکن اگر آپ آؤٹ پٹ کے آخر میں ایک کریکٹر شامل کرتے ہیں \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.");//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."
درحقیقت، گاڑی کی واپسی ان دنوں کی ہے جب ٹائپ رائٹرز پر ٹیکسٹ پرنٹ کیا جاتا تھا۔ لائن فیڈ کو انجام دینے کے لیے، گاڑی کو حرکت دینا اور لیور (ٹائپ رائٹر میکانزم کا حصہ) کو نیچے کرنا ضروری تھا، جس کے بعد لائن فیڈ کو انجام دیا جائے گا۔ اگر لیور نیچے نہیں کیا گیا تھا، تو ایک ہی لائن پر پرنٹ جاری رکھ سکتا ہے. جب ہم علامت کو ظاہر کرتے ہیں تو ہم یہی مشاہدہ کرتے ہیں \r۔ اس سلسلے میں، جب پروگرامر نے لائن بریک کرنا چاہا، تو اس نے عادت سے باہر، آؤٹ پٹ کے آخر میں حروف کی ایک ترتیب کو انجام دیا \r\n۔ جیسے جیسے ٹائپ رائٹر کا دور ختم ہوا، پروگرامرز کی ایک نسل تھی جو اب بھی اس ترتیب کو استعمال کرتی تھی، حالانکہ انھوں نے خود کبھی ٹائپ رائٹر پر کام نہیں کیا تھا۔ وہ اکثر بھول جاتے ہیں کہ انہیں کس ترتیب میں ایک ترتیب کو مکمل کرنے کی ضرورت ہے - \r\nیا \n\r. پھر ایک آزمائشی لفظ ان کی مدد کے لیے آیا return، جہاں ان علامتوں کو جس ترتیب میں دکھایا گیا تھا وہ واضح طور پر دکھائی دے رہا تھا۔ تاہم، بعد میں، MS-DOS کے بعد، ونڈوز کے پہلے ورژن کے لیے سافٹ ویئر تیار کرتے وقت، پروگرامرز کو اس ترتیب کو استعمال کرنے پر مجبور کیا گیا \r\n۔ اب آپ کو اس کے بارے میں فکر کرنے کی ضرورت نہیں ہے اور لائن کو توڑنے کے لیے صرف کردار کا استعمال کریں \n۔ جاوا میں فرار ہونے والے کردار - 3آئیے 80 کی دہائی کے آس پاس، ایک بار پھر وقت پر چلتے ہیں۔ \fاس کے بعد اگلے صفحے کے شروع میں صفحہ آگے کی علامت مقبول ہوئی۔ اس وقت، بڑے لائن پرنٹرز تھے، جن کے ساتھ کام کرنے کے لیے پروگرام کوڈ لکھنا ضروری تھا جس میں پرنٹر کو کیا اور کیسے پرنٹ کرنا چاہیے۔ اور یہ بتانے کے لیے کہ متن کو ایک نئے صفحہ سے شروع کیا جانا چاہیے، علامت استعمال کی گئی تھی \f۔ ہمارے وقت میں، یہ علامت طویل عرصے سے اس کی مطابقت کھو چکی ہے، اور یہ ممکن نہیں ہے کہ آپ اسے کبھی ملیں گے. لکیری پرنٹر کے طول و عرض کافی متاثر کن ہیں۔ جاوا میں فرار ہونے والے کردار - 4علامتوں کے ساتھ \’اور \\سب کچھ بالکل ویسا ہی ہے جیسا کہ ایک ڈبل اقتباس سے بچنے کے ساتھ، مضمون کے شروع میں ایک مثال تھی۔ آپ کو ایک اقتباس سے بچنا پڑے گا، مثال کے طور پر، ایک ہی اقتباس کے ساتھ چار قسم کو شروع کرنے کے لیے۔
char ch = '\'';
بیک سلیش کریکٹر سے فرار اس بات کی نشاندہی کرنے کے لیے کہ درج ذیل کریکٹر فرار کی ترتیب کا حصہ نہیں ہوگا۔
System.out.println("\\n - line break escape sequence");
// Output: \n - line break escape sequence
عملی طور پر، آپ کو اکثر راستوں کے ساتھ کام کرتے وقت بیک سلیش سے بچنا پڑتا ہے:
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"
میں نے اس بات پر زور دیا کہ یہ فرار کے سلسلے سٹرنگز (سٹرنگ لٹریلز) میں استعمال ہوتے ہیں، کیونکہ ان میں سے باقی کا استعمال کلاس ریگولر ایکسپریشنز کو بیان کرنے کے لیے کیا جاتا ہے Patternاور اس مضمون کے موضوع سے متعلق نہیں ہے۔ یہاں آپ کلاس کے تمام فرار کے سلسلے کی فہرست دیکھ سکتے ہیں Pattern۔ تاہم، یہ بات قابل غور ہے کہ جس شکل میں وہ اب موجود ہیں اس میں ریگولر ایکسپریشنز کا تصور فرار کے سلسلے کے استعمال کے بغیر نہیں کیا جا سکتا، نہ صرف جاوا میں، بلکہ دیگر مشہور پروگرامنگ زبانوں میں بھی، مثال کے طور پر، پی ایچ پی۔ جاوا میں، کریکٹر ایسکیپنگ کو سٹرنگ فارمیٹنگ میں بھی استعمال کیا جاتا ہے۔ مثال کے طور پر، فیصد کی علامت کو ظاہر کرنے کے لیے سٹرنگ فارمیٹ کی وضاحت کرتے وقت، آپ کو فیصد کی علامت کو ڈپلیکیٹ کرنا چاہیے، %%بصورت دیگر ہمیں ایک خرابی ملے گی، اور IDE آپ کو فیصد شامل کرنے کا اشارہ کرے گا۔
System.out.printf("Milk fat percentage : %d%%", 10);
// Milk fat percentage : 10%
یہ مضمون ختم کرتا ہے۔ مجھے امید ہے کہ آپ نے کردار سے فرار ہونے اور اسے عملی جامہ پہنانے کے بارے میں بہت کچھ سیکھا ہوگا۔ بہت سی پروگرامنگ زبانوں میں کردار سے فرار ہونا موروثی ہے۔ جاوا میں، سی جیسی دیگر زبانوں کی طرح، اس ٹیکنالوجی کو تقریباً یکساں طور پر لاگو کیا جاتا ہے۔ لہذا، اس مضمون سے جو علم آپ حاصل کرتے ہیں وہ نہ صرف جاوا میں مفید ہو سکتا ہے۔ آپ کی توجہ اور تعلیم کے ساتھ اچھی قسمت کے لئے آپ کا شکریہ!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION