কোডজিম ইউনিভার্সিটি কোর্সের অংশ হিসাবে একজন পরামর্শদাতার সাথে একটি বক্তৃতা স্নিপেট। সম্পূর্ণ কোর্সের জন্য সাইন আপ করুন।


"শুভেচ্ছা, অ্যামিগো। একসময়, আপনি শিখেছিলেন যে কোডে অক্ষরগুলির একটি স্ট্রিং লিখতে হলে, আপনাকে সেগুলিকে ডবল কোটে মোড়ানো দরকার।"

"হ্যাঁ, এবং এটি আমাদের একটি স্ট্রিং আক্ষরিক দেয় । এটি খুব বেশি দিন হয়নি যে আমি এটি সম্পর্কে জানতে পেরেছিলাম।"

"আমাদের পেশায়, এটি অনেক আগে ছিল। কিন্তু এই মুহূর্তে এটি বিন্দু নয়। পরিবর্তে, অনুগ্রহ করে আমাকে বলুন যদি আমাদের একটি স্ট্রিং লিটারালের ভিতরে উদ্ধৃতি চিহ্নের প্রয়োজন হয়?"

"হুম... উদ্ধৃতি সম্বলিত একটি স্ট্রিং — কি সহজ হতে পারে। আমি নিশ্চিত যে কিছু উপায় আছে..."

"হ্যাঁ। ধরা যাক আমরা টেক্সট প্রদর্শন করতে চাই "Friends" was nominated for an "Oscar"। আমরা এটা কিভাবে করব?"

"সত্যি বলতে, আমার কোন ধারণা নেই। আমি কিছুই ভাবতে পারছি না।"

"আপনি যুক্তি দিয়ে একটি সমাধান পেতে সক্ষম হবে না. আমি শুধু আপনাকে কি করতে হবে তা দেখান.

কোড মন্তব্য
String s = ""Friends" was nominated for an "Oscar"";
এই বিকল্প কাজ করবে না!"

"এই বিকল্পটি কাজ করবে না, কারণ কম্পাইলার এটিকে সম্পূর্ণ ভিন্ন কোড হিসাবে ব্যাখ্যা করে:

কোড মন্তব্য
String s = ""Friends" was nominated for an "Oscar"";
এই বিকল্প কাজ করবে না!"

"কোডের মধ্যে কম্পাইলার দ্বিগুণ উদ্ধৃতিগুলির মুখোমুখি হওয়ার পরে, এটি একটি স্ট্রিং লিটারেলের শুরু হিসাবে অনুসরণ করে। পরবর্তী ডবল উদ্ধৃতি চিহ্নটি স্ট্রিং আক্ষরিকের শেষ নির্দেশ করে।"

"তাহলে আপনি কিভাবে একটি আক্ষরিক ভিতরে ডবল উদ্ধৃতি লিখবেন?"

"একটি উপায় আছে। একে বলা হয় এস্কেপিং অক্ষর । আপনি শুধু টেক্সটের স্ট্রিং এর মধ্যে উদ্ধৃতি চিহ্ন লিখুন। এবং উদ্ধৃতির আগে, আপনি \ ( ব্যাকস্ল্যাশ ) চিহ্ন যোগ করুন।

"যথাযথভাবে লেখা হলে স্ট্রিং আক্ষরিকটি দেখতে এটির মতো দেখায়:

কোড মন্তব্য
String s = "\"Friends\" was nominated for an \"Oscar\"";
এই কাজ হবে!

"কম্পাইলার সবকিছু সঠিকভাবে ব্যাখ্যা করবে এবং ব্যাকস্ল্যাশের পরে উদ্ধৃতি চিহ্নটিকে সাধারণ উদ্ধৃতি চিহ্ন হিসাবে বিবেচনা করবে না।

"আরও কি, আপনি যদি এই স্ট্রিংটি স্ক্রিনে আউটপুট করেন, ব্যাকস্ল্যাশ সহ উদ্ধৃতিগুলি সঠিকভাবে প্রক্রিয়া করা হবে এবং পাঠ্যটি কোনও ব্যাকস্ল্যাশ ছাড়াই প্রদর্শিত হবে:"Friends" was nominated for an "Oscar"

"ঠিক আছে, আমি বলতে যাচ্ছি না যে এটি অত্যন্ত সুবিধাজনক ..."

"কিন্তু আপনি কি করতে পারেন, সেগুলি হল নিয়ম৷ আরেকটি গুরুত্বপূর্ণ বিষয়৷ একটি ব্যাকস্ল্যাশের আগে একটি উদ্ধৃতি চিহ্ন একটি একক অক্ষরকে উপস্থাপন করে: আমরা কেবল চটকদার স্বরলিপি ব্যবহার করছি যা আমাদের স্ট্রিং লিটারেলগুলি চিনতে কম্পাইলারের ক্ষমতাতে হস্তক্ষেপ করে না৷ কোড। আপনি একটি charভেরিয়েবলে উদ্ধৃতি বরাদ্দ করতে পারেন:

কোড মন্তব্য
char c = '\"';
\"একটি চরিত্র, দুটি নয়
char c = '"';
এটিও সম্ভব: একক উদ্ধৃতির ভিতরে একটি দ্বিগুণ উদ্ধৃতি চিহ্ন

অক্ষর পালানোর সময় যে সাধারণ পরিস্থিতি ঘটে

"দ্বৈত উদ্ধৃতি ছাড়াও, আরও অনেক অক্ষর রয়েছে যা কম্পাইলার একটি বিশেষ উপায়ে পরিচালনা করে৷ উদাহরণস্বরূপ, একটি লাইন বিরতি৷

"আমরা কিভাবে একটি আক্ষরিক মধ্যে একটি লাইন বিরতি যোগ করব? এর জন্য একটি বিশেষ সমন্বয়ও রয়েছে:

\n
লাইন বিরতি চরিত্র

"আপনি যদি একটি স্ট্রিং লিটারেলে একটি লাইন বিরতি যোগ করতে চান তবে আপনি কেবল কয়েকটি অক্ষর যোগ করুন" \n

উদাহরণ:

কোড কনসোল আউটপুট
System.out.println("Best regards, \n Anonymous");
Best regards,
Anonymous

"এরকম মোট 8টি বিশেষ সংমিশ্রণ রয়েছে, যেগুলিকে এস্কেপ সিকোয়েন্সও বলা হয় । এখানে সেগুলি হল:

কোড বর্ণনা
\t একটি ট্যাব অক্ষর সন্নিবেশ করুন
\b একটি ব্যাকস্পেস অক্ষর সন্নিবেশ করান
\n একটি নতুন লাইন অক্ষর সন্নিবেশ করান
\r একটি ক্যারেজ রিটার্ন অক্ষর সন্নিবেশ করান
\f একটি পৃষ্ঠা ফিড অক্ষর সন্নিবেশ
\' একটি একক উদ্ধৃতি চিহ্ন সন্নিবেশ করান
\" একটি ডবল উদ্ধৃতি চিহ্ন ঢোকান
\\ একটি ব্যাকস্ল্যাশ ঢোকান

"আপনি ইতিমধ্যে আমাকে তাদের মধ্যে দুটি দেখিয়েছেন. বাকি 6 মানে কি?"

"আমি এখনই সব ব্যাখ্যা করব।

\tএকটি ট্যাব অক্ষর

Tabযখন এই টেক্সটটি টেক্সটে উপস্থিত হয়, তখন এটি টাইপ করার সময় কী টিপানোর সমতুল্য । এটি যে পাঠ্যটিকে অনুসরণ করে তা স্থানান্তরিত করে এবং পাঠ্যকে সারিবদ্ধ করা সম্ভব করে তোলে।

উদাহরণ:

কোড কনসোল আউটপুট
System.out.println("0\t1\t2\t3");
System.out.println("0\t10\t20\t30");
System.out.println("0\t100\t200\t300");
0       1        2        3
0       10       20       30
0       100      200      300

\bমানে 'একটি অক্ষর ফিরে যান'

Backspaceএকটি স্ট্রিংয়ের এই ক্রমটি কীবোর্ডের কী টিপানোর সমতুল্য । এটি তার আগে থাকা অক্ষরটিকে সরিয়ে দেয়:

কোড কনসোল আউটপুট
System.out.println("Hello\b\b World");
Hel World

\rক্যারেজ রিটার্ন চরিত্র

এই অক্ষরটি পাঠ্য পরিবর্তন না করেই কার্সারটিকে বর্তমান লাইনের শুরুতে নিয়ে যায় (JDK সংস্করণের উপর নির্ভর করে)। পরবর্তী যা প্রদর্শিত হবে তা বিদ্যমান স্ট্রিংকে ওভাররাইট করবে।

উদাহরণ:

কোড কনসোল আউটপুট
System.out.println("Greetings\r World!");
World!ngs

\fএকটি পৃষ্ঠা ফিড অক্ষর

এই চিহ্নটি প্রথম ডট ম্যাট্রিক্স প্রিন্টারের দিন থেকে আমাদের কাছে আসে। এই ক্রমটিকে একটি প্রিন্টারে আউটপুট করার ফলে প্রিন্টারটি একটি নতুন পৃষ্ঠা শুরু না হওয়া পর্যন্ত কোনো পাঠ্য মুদ্রণ না করেই বর্তমান শীটটিকে সহজভাবে ফিড করে দেবে।

এখন আমরা একে পেজ ব্রেক বা নতুন পেজ বলব ।

\\একটি ব্যাকস্ল্যাশ

এখানে সবকিছু সোজা। আমরা যদি আমাদের টেক্সটে অক্ষর থেকে বাঁচতে একটি ব্যাকস্ল্যাশ ব্যবহার করি, তাহলে কীভাবে আমরা স্ট্রিং-এ একটি ব্যাকস্ল্যাশ অক্ষর লিখব?

এটা সহজ: পাঠ্যে একটি ব্যাকস্ল্যাশ যোগ করুন — আপনাকে পরপর দুটি লিখতে হবে।

উদাহরণ:

কোড কনসোল আউটপুট
System.out.println("c:\projects\my\first");
কম্পাইলার অজানা পালিয়ে যাওয়া অক্ষরের জন্য আপনাকে চিৎকার করবে।
System.out.println("c:\\projects\\my\\first");
যে কিভাবে এটা ঠিক করা হয়েছে!

"ডবল স্ল্যাশ ব্যবহার করা অর্থপূর্ণ। কিন্তু আমি অবিলম্বে অন্য সব কিছু মনে রাখতে পারিনি। আমাকে আপনার ইঙ্গিতের উপর নির্ভর করতে হবে।"

"ধীরে ধীরে, আপনার যা প্রয়োজন তা আপনি মনে রাখবেন। চিন্তা করবেন না। এবং অন্য সবকিছুর জন্য, গুগল আছে।

ইউনিকোড এনকোডিং

"আপনি ইতিমধ্যেই জানেন যে পর্দায় প্রদর্শিত প্রতিটি অক্ষর একটি নির্দিষ্ট সংখ্যাসূচক কোডের সাথে মিলে যায়৷ এই কোডগুলির একটি প্রমিত সেটকে এনকোডিং বলা হয়

"একসময়, যখন কম্পিউটারগুলি নতুন উদ্ভাবিত হয়েছিল, তখন প্রতিটি অক্ষর এনকোড করার জন্য সাতটি বিট (এক বাইটের কম) যথেষ্ট ছিল। প্রথম এনকোডিংটিতে মাত্র 128টি অক্ষর ছিল। এই এনকোডিংকে ASCII বলা হত "

"এটি একটি অদ্ভুত নাম।"

"এতে অদ্ভুত কিছু নেই। এটি একটি সংক্ষিপ্ত নাম। ASCII হল আমেরিকান স্ট্যান্ডার্ড কোড ফর ইনফরমেশন ইন্টারচেঞ্জ - প্রিন্টযোগ্য অক্ষর এবং কিছু বিশেষ কোডের জন্য একটি আদর্শ আমেরিকান কোড টেবিল।"

"এটিতে 33টি অ-মুদ্রণযোগ্য নিয়ন্ত্রণ অক্ষর রয়েছে (যা টেক্সট এবং স্পেস কীভাবে প্রক্রিয়া করা হয় তা প্রভাবিত করে) এবং সংখ্যা, বড় হাতের এবং ছোট হাতের ল্যাটিন অক্ষর এবং বেশ কয়েকটি বিরাম চিহ্ন সহ 95টি মুদ্রণযোগ্য অক্ষর।

"কম্পিউটার জনপ্রিয়তা বাড়ার সাথে সাথে, প্রতিটি দেশ তার নিজস্ব এনকোডিং প্রকাশ করতে শুরু করে৷ সাধারণত, তারা ASCII কে একটি সূচনা বিন্দু হিসাবে নেয় এবং তাদের নিজ নিজ বর্ণমালা থেকে চিহ্নগুলির সাথে খুব কমই ব্যবহৃত ASCII অক্ষরগুলিকে প্রতিস্থাপন করে৷

"সময়ের সাথে সাথে, একটি ধারণা আবির্ভূত হয়েছে: একটি একক এনকোডিং তৈরি করুন যাতে বিশ্বের প্রতিটি এনকোডিংয়ের সমস্ত অক্ষর রয়েছে৷

ইউনিকোড এনকোডিং

"এইভাবে, 1993 সালে, ইউনিকোড এনকোডিং তৈরি করা হয়েছিল, এবং জাভা ভাষা প্রথম প্রোগ্রামিং ভাষা হয়ে ওঠে যা এই এনকোডিংটিকে পাঠ্য সংরক্ষণের জন্য স্ট্যান্ডার্ড হিসাবে ব্যবহার করেছিল৷ এখন ইউনিকোড সমগ্র আইটি শিল্পের জন্য আদর্শ৷

"যদিও ইউনিকোড নিজেই স্ট্যান্ডার্ড, এর বেশ কিছু উপস্থাপনা বা ইউনিকোড রূপান্তর বিন্যাস (UTF): UTF-8, UTF-16 এবং UTF-32, ইত্যাদি।

"জাভা ইউনিকোড এনকোডিংয়ের একটি উন্নত সংস্করণ ব্যবহার করে — UTF-16: প্রতিটি অক্ষর 16 বিটে (2 বাইট) এনকোড করা হয়েছে৷ এটি 65,536 অক্ষর পর্যন্ত মিটমাট করতে পারে! আপনি এই এনকোডিং-এ বিশ্বের প্রতিটি বর্ণমালার প্রায় প্রতিটি অক্ষর খুঁজে পেতে পারেন৷ "

"আমি আশা করি আমার এটি হৃদয় দিয়ে জানার দরকার নেই?"

"আপনি যদি চান, এটির জন্য যান!"

"ঠিক আছে, ঠিক আছে। আমি এই নিয়মটি ব্যবহার করব: আপনি সবকিছু জানতে পারবেন না, কিন্তু আপনি সবকিছু গুগল করতে পারেন।"

\u"যৌক্তিক পদ্ধতি অবলম্বন করাই সবকিছু। সুতরাং, আপনার প্রোগ্রামে একটি ইউনিকোড অক্ষর লিখতে এর কোড ব্যবহার করে, আপনাকে + কোডটি হেক্সাডেসিমেলে লিখতে হবে । উদাহরণস্বরূপ,\u00A9

কোড কনসোল আউটপুট
System.out.println("\u00A9 CodeGym");
© CodeGym

ইউনিকোড: কোড পয়েন্ট

"640 কিলোবাইট প্রত্যেকের জন্য যথেষ্ট হওয়া উচিত! বা না"। বিল গেটস একবার বলেছিলেন। অথবা না. অন্তত এই উদ্ধৃতি তাকে দায়ী করা হয়।"

"হাহা। 640 কিলোবাইট এমনকি একটি পরিষ্কার রোবটের মস্তিষ্ক লোড করার জন্য যথেষ্ট নয়।"

"জীবন রুক্ষ, এবং সময়ের সাথে সাথে, UTF-16 এনকোডিং অপর্যাপ্ত হতে শুরু করে। দেখা যাচ্ছে যে অনেকগুলি এশিয়ান ভাষা রয়েছে এবং তাদের প্রচুর গ্লিফ রয়েছে। এবং এই সমস্ত গ্লিফগুলিকে কেবল 2 বাইটে বিভক্ত করা যায় না "

"তাই আমরা কি কাজ করতে পারি?"

" আরো বাইট ব্যবহার করুন! কিন্তু char টাইপটি মাত্র 2 বাইট এবং এটিকে 4 তে পরিবর্তন করা এত সহজ নয়: সারা বিশ্ব জুড়ে জাভা কোডের বিলিয়ন লাইন লেখা হয়েছে, যা ভাঙবে যদি char টাইপটি হঠাৎ করে একটি জাভা 4 বাইট হয়ে যায়। মেশিন তাই আমরা চর টাইপ পরিবর্তন করতে পারি না!

"আরেকটি পদ্ধতি আছে। মনে রাখবেন কিভাবে আমরা অক্ষরকে তাদের সামনে ব্যাকস্ল্যাশ রেখে এড়িয়ে যাই। মূলত, আমরা একাধিক অক্ষর ব্যবহার করে একটি একক অক্ষর এনকোড করেছি। জাভা-এর নির্মাতারা একই পদ্ধতি ব্যবহার করার সিদ্ধান্ত নিয়েছেন।

"কিছু অক্ষর যা দৃশ্যত একটি একক অক্ষর হিসাবে প্রদর্শিত হয় সেগুলি charএকটি স্ট্রিংয়ে দুটি s হিসাবে এনকোড করা হয়:

কোড কনসোল আউটপুট
System.out.println("\uD83D\uDD0A");
🔊

"এখন আপনার জাভা প্রোগ্রাম এমনকি কনসোলে ইমোজি আউটপুট করতে পারে 😎"

"আমি অবশ্যই কিছু মজা করার জন্য এটি ব্যবহার করব!"