"অ্যামিগো, আমি তোমাকে ঈর্ষা করি। নতুন জিনিস শেখা খুবই চমৎকার! এবং আজ একটি নতুন এবং আকর্ষণীয় বিষয় আপনার জন্য অপেক্ষা করছে - আক্ষরিক।"

"আপাতদৃষ্টিতে আমার বলা উচিত যে আমি গ্রহের সবচেয়ে সুখী রোবো-শিক্ষার্থী, ঋষি। ঠিক আছে, আমি নতুন জ্ঞান গ্রহণ করতে প্রস্তুত!"

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

উদাহরণস্বরূপ, ধরুন আপনার কাছে এই কোডটি রয়েছে:

কোড আক্ষরিক
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

"এই কোডের আক্ষরিকগুলি হল সংখ্যা 5 , সংখ্যা 10 এবং স্ট্রিং ' Sum = '৷

পূর্ণসংখ্যার আক্ষরিক

"জাভাতে, লিটারাল সহ সবকিছুরই একটি টাইপ আছে। কোডের সমস্ত পূর্ণসংখ্যা লিটারেল (পূর্ণসংখ্যা) হল int । int টাইপ হল আদর্শ জাভা পূর্ণসংখ্যার ধরন।"

"আমি এই ধরনের জানি। আমি এটা ব্যবহার করেছি।"

"আপনার কি int ছাড়াও অন্যান্য পূর্ণসংখ্যার ধরন মনে আছে? কিছু যা মেমরিতে কম জায়গা নেয়?"

"অবশ্যই! বাইট এবং ছোট।"

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

উদাহরণ:

কোড বর্ণনা
int a = 300;
এই ঠিক কম্পাইল হবে.
byte a = 100; 
এই ঠিক কম্পাইল হবে.
byte a = 300;
একটি সংকলন ত্রুটি হবে, কারণ সর্বাধিক বাইট মান হল 127।

" দীর্ঘ টাইপ সম্পর্কে কি?"

"আমরা আমাদের কোডে এই ধরনের আক্ষরিক লিখতে পারি। এটি করতে, পূর্ণসংখ্যার শেষে ল্যাটিন অক্ষর 'L' বা 'l' যোগ করুন।

উদাহরণ:

কোড বর্ণনা
long a = 3000000000L; 
এই ঠিক কম্পাইল হবে.
long a = 3000000000; 
সংকলন ত্রুটি: 3 বিলিয়ন একটি int আক্ষরিক জন্য খুব বড়.
int a = 3000000000L; 
সংকলন ত্রুটি: আক্ষরিক একটি দীর্ঘ, কিন্তু পরিবর্তনশীল একটি int. উপরন্তু, 3 বিলিয়ন সর্বোচ্চ int এর চেয়ে বেশি।

"আপনি কি লক্ষ্য করেছেন যে 10 বা তার বেশি সংখ্যার বড় সংখ্যা পড়া কতটা কঠিন?

"হ্যাঁ, যদি আপনার রোবোভিশন সক্ষম না থাকে, তাহলে আমরা 3 বিলিয়ন নাকি 30 সম্পর্কে কথা বলছি তা অবিলম্বে পরিষ্কার হবে না।"

"কোডকে আরও পঠনযোগ্য করতে (এবং এটি গুরুত্বপূর্ণ!), জাভা আন্ডারস্কোরগুলিকে সাংখ্যিক লিটারেলে সন্নিবেশিত করার অনুমতি দেয় (সেগুলি সংখ্যার মানকে প্রভাবিত করে না)।

"উপরের উদাহরণটি একটু পরিষ্কার করার জন্য আন্ডারস্কোর দিয়ে পুনরায় লেখা যেতে পারে:

কোড বর্ণনা
long a = 3_000_000_000L; 
এই ঠিক কম্পাইল হবে.
long a = 3_000_000_000; 
সংকলন ত্রুটি: 3 বিলিয়ন একটি int আক্ষরিক জন্য খুব বড়.
int a = 3_000_000_000L; 
সংকলন ত্রুটি: আক্ষরিক একটি দীর্ঘ, কিন্তু পরিবর্তনশীল একটি int. উপরন্তু, 3 বিলিয়ন সর্বোচ্চ int এর চেয়ে বেশি।

"এটি পড়তে অনেক বেশি সুবিধাজনক, যদিও একটি আন্ডারস্কোরের পরিবর্তে একটি কমা আরও পরিচিত হবে!"

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

প্রকৃত সংখ্যা আক্ষরিক

"আপনি সম্ভবত ইতিমধ্যেই অনুমান করেছেন যে আপনার কোডে আপনি শুধুমাত্র পূর্ণসংখ্যাই নয়, ফ্লোটিং পয়েন্ট লিটারাল (বাস্তব সংখ্যা)ও নির্দিষ্ট করতে পারেন।"

"উভয় ডাবলস এবং ফ্লোটস?"

"হ্যাঁ। প্রকৃতপক্ষে, নিয়মটি বেশ সহজ: যদি কোডের একটি সংখ্যার দশমিক বিন্দু থাকে, তাহলে সংখ্যাটি একটি ফ্লোটিং পয়েন্ট আক্ষরিক। এবং শুধুমাত্র কোনো আক্ষরিক নয়, বরং দ্বিগুণ আক্ষরিক। একটি ফ্লোট আক্ষরিক তৈরি করতে , আপনি সংখ্যার শেষে 'F' (বা 'f') অক্ষর বসাতে হবে

উদাহরণ:

কোড বর্ণনা
double a = 100.0; 
এই ঠিক কম্পাইল হবে.
double a = 100.;
এই ঠিক কম্পাইল হবে.
double a = .0;
এই ঠিক কম্পাইল হবে.
float a = 100.0f; 
এই ঠিক কম্পাইল হবে.
float a = 100.0; 
একটি সংকলন ত্রুটি থাকবে: ভেরিয়েবলটি একটি ফ্লোট, কিন্তু আক্ষরিকটি একটি দ্বিগুণ।

"প্রসঙ্গক্রমে, আপনি স্পষ্টভাবে একটি পূর্ণসংখ্যা আক্ষরিককে একটি ফ্লোট বা ডাবল লিটারেলে রূপান্তর করতে পারেন কেবল প্রত্যয় 'F' ( float এর জন্য ) বা D ( ডবলের জন্য ) যুক্ত করে। উদাহরণ:

কোড বর্ণনা
double a = 100D;
এই ঠিক কম্পাইল হবে.
float a = 100F; 
এই ঠিক কম্পাইল হবে.
int a = 300D; 
একটি সংকলন ত্রুটি হবে: পরিবর্তনশীল একটি int, কিন্তু আক্ষরিক একটি দ্বিগুণ

"ফ্লোটিং-পয়েন্ট লিটারালগুলি বৈজ্ঞানিক স্বরলিপি ব্যবহার করতে পারে : সংখ্যার স্বাক্ষরিত অংশ ছাড়াও, আপনি দশের একটি শক্তিও নির্দিষ্ট করতে পারেন৷ উদাহরণ:

আক্ষরিক গাণিতিক স্বরলিপি চূড়ান্ত মান
1.23 2 1.23*10 2 123.0
1.23 3 1.23*103 1230.0
1.23 -6 1.23*10 -6 0.00000123
1 6 1.0 *10 6 1000000.0
1 -10 1.0*10 -10 0.0000000001

স্ট্রিং আক্ষরিক

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

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

"এই ধরনের প্রতিটি আক্ষরিক একটি স্ট্রিং

উদাহরণ

কোড ব্যাখ্যা
"+"+"+"+"+"+"+"+"+"
একটি লাইনে 5টি লিটারেল আছে। তাদের প্রতিটি একটি একক '+' অক্ষর নিয়ে গঠিত
""
এই আক্ষরিক একটি খালি স্ট্রিং. কোন অক্ষর ছাড়া একটি স্ট্রিং.
"2+3"+"-5"
এখানে দুটি আক্ষরিক আছে। ফলাফল হবে '2+3-5' স্ট্রিং, সংখ্যা নয়
"return"+";"
এখানে দুটি আক্ষরিকও আছে। এখানে কোন রিটার্ন স্টেটমেন্ট নেই।

"যদি একটি স্ট্রিং আক্ষরিক খুব দীর্ঘ হয়, তবে এটিকে কয়েকটি লাইনে বিভক্ত করা যেতে পারে এবং 'প্লাস অপারেটর' এর সাথে একত্রে আটকানো যেতে পারে:

কোড ব্যাখ্যা
String s = "I hold it true, whate'er befall"
         + "I feel it when I sorrow most;"
         + "'Tis better to have loved and lost"
         + "Than never to have loved at all.";
আপনি যদি এই লাইনটি স্ক্রিনে আউটপুট করেন, তবে সমস্ত পাঠ্য এক লাইনে প্রদর্শিত হবে!

অক্ষর আক্ষরিক

"আমার যদি একটি আক্ষরিক স্ট্রিং এর পরিবর্তে একটি একক অক্ষরের প্রয়োজন হয় তাহলে কি হবে? আমি কি এমন একটি স্ট্রিং তৈরি করব যাতে একটি একক অক্ষর থাকে?"

"না, সেক্ষেত্রে আপনার একটি আক্ষরিক প্রয়োজন যার প্রকার char। আপনি কি অনুমান করতে পারেন যে এই ধরনের আক্ষরিকের শুরু এবং শেষ কীভাবে মনোনীত হয়?"

"একক উদ্ধৃতি?"

"হ্যাঁ, এবং একক উদ্ধৃতিগুলির ভিতরে অবশ্যই একটি অক্ষর এবং শুধুমাত্র একটি অক্ষর থাকতে হবে৷ আপনি খালি একক উদ্ধৃতি ব্যবহার করতে পারবেন না৷

উদাহরণ:

কোড ব্যাখ্যা
'A'
একটি আক্ষরিক যার ধরন চর। এতে ল্যাটিন অক্ষর 'A' রয়েছে।
'@' 
একটি আক্ষরিক যার ধরন চর। এতে '@' চিহ্ন রয়েছে
'' 
একটি আক্ষরিক যার ধরন চর। এটিতে একটি জাপানি চরিত্র রয়েছে। আর এটাও সম্ভব।
'\u1f3a'
একটি আক্ষরিক যার ধরন চর। এটির সংখ্যা দ্বারা নির্দিষ্ট একটি ইউনিকোড অক্ষর রয়েছে।

"শেষ উদাহরণটি একটি বিশেষ স্বরলিপি ব্যবহার করে একটি ইউনিকোড অক্ষর বরাদ্দ করে: প্রথমে আমাদের কাছে উপসর্গ রয়েছে \\u, তারপরে 4টি হেক্সাডেসিমেল অক্ষর রয়েছে। আপনি পরবর্তী পাঠগুলিতে এই সম্পর্কে আরও শিখবেন।"