Java-এর char প্রিমিটিভ টাইপ হলো একটি Unicode ক্যারেক্টারের ১৬ বিটের রিপ্রেজেন্টেশন।
char টাইপটি Unicode-এর মূল স্পেসিফিকেশন-এর উপর ভিত্তি করে তৈরি, যা ক্যারেক্টার রিপ্রেজেন্ট করতে ১৬ বিট ব্যবহার করত।
এটি বেশিরভাগ কমন অক্ষর কভার করার জন্য যথেষ্ট, আর 0x0000 থেকে 0xFFFF রেঞ্জের ক্যারেক্টারগুলো কভার করে।
স্পেসিফিকেশনটি এরপর থেকে সম্ভাব্য ক্যারেক্টারের রেঞ্জ 0x01FFFF পর্যন্ত বাড়িয়েছে।
একাধিক char মিলে একটি স্ট্রিং তৈরি করতে পারে, যেমন "word", আবার charগুলোকে আলাদাভাবেও প্রসেস করা যায়।
একটি char লিটারেল একক কোট চিহ্নের মধ্যে লেখা হয় (যেমন 'A')।
char lowerA = 'a';
char upperB = 'B';
String থেকে charগুলো পাওয়াString.toCharArray মেথড একটি String-এর ক্যারেক্টারগুলোকে একটি অ্যারে হিসেবে রিটার্ন করে।
arrays-এ যেমন বলা হয়েছে, আপনি একটি for লুপ দিয়ে অ্যারের উপর ইটারেশন করতে পারেন।
String text = "Hello";
char[] asArray = text.toCharArray();
for (char ch: asArray) {
System.out.println(ch);
}
// Outputs:
// H
// e
// l
// l
// o
char যাচাই ও ম্যানিপুলেট করার জন্য লাইব্রেরিতে অনেক বিল্ট-ইন মেথড রয়েছে।
এগুলো java.lang.Character ক্লাসের স্ট্যাটিক মেথড হিসেবে পাওয়া যায়।
এখানে কিছু উদাহরণ দেওয়া হলো:
Character.isWhitespace(' '); // true
Character.isWhitespace('#'); // false
Character.isLetter('a'); // true
Character.isLetter('3'); // false
Character.isDigit('6'); // true
Character.isDigit('?'); // false
Character ক্লাসের কিছু মেথডে একটি ওভারলোড আছে, যাতে সেগুলো একটি char বা একটি int দুটোরই নিতে পারে।
যেমন, isDigit-এর একটি ওভারলোড char গ্রহণ করে আর অন্যটি int।
যেমনটি আগে বলা হয়েছে, char টাইপ কেবল 0x0000 থেকে 0xFFFF রেঞ্জের ক্যারেক্টারগুলোই রিপ্রেজেন্ট করতে পারে।
অন্যদিকে int সব ক্যারেক্টারই রিপ্রেজেন্ট করতে পারে, তাই int ওভারলোডগুলো রয়েছে।
String-এর সাথে একটি char যোগ করাএকটি String-এর সাথে একটি char যোগ করতে + অপারেটর ব্যবহার করা যায়।
'a' + " banana" // => "a banana"
"banana " + 'a' // => "banana a"
দুটি char জোড়া লাগিয়ে একটি String তৈরি করতে + ব্যবহার করবেন না!
এভাবে দুটি char যোগ করলে একটি int পাওয়া যায়, String নয়!
যেমন:
'b' + 'c';
// => 197 (not the String "bc")
এর কারণ হলো Java char-কে একটি int-এ প্রোমোট করে (দেখুন 4.2 Primitive Types and Values , যা Java Language Specification-এর অংশ)।
তবে যখন যোগ করার মতো অনেক ক্যারেক্টার থাকে, তখন এর বদলে একটি StringBuilder ব্যবহার করা বেশি কার্যকর হতে পারে:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc