Java-এর char প্রিমিটিভ টাইপ হলো একটি একক ক্যারেক্টারের ১৬ বিটের উপস্থাপনা।
একাধিক char মিলে একটি স্ট্রিং তৈরি হতে পারে, যেমন "word", আবার char-গুলোকে আলাদাভাবে প্রসেসও করা যায়।
একটি char লিটারেলকে একক উদ্ধৃতি চিহ্ন দিয়ে ঘিরে লেখা হয় (যেমন 'A')।
char lowerA = 'a';
char upperB = 'B';
String-এর char-গুলো পাওয়াString.toCharArray মেথডটি একটি স্ট্রিংয়ের ক্যারেক্টারগুলো অ্যারে হিসেবে রিটার্ন করে।
অ্যারে নিয়ে আগের আলোচনায় যেমন বলা হয়েছে, আপনি অ্যারের উপর একটি 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
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-এ প্রমোট করে (Java Language Specification-এর 4.2 Primitive Types and Values দেখুন)।
তবে অনেক ক্যারেক্টার যোগ করতে হলে, বদলে একটি StringBuilder ব্যবহার করা আরও দক্ষ হতে পারে:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc
এই অনুশীলনীতে আপনি কিছু ইউটিলিটি রুটিনের একটি আংশিক সেট ইমপ্লিমেন্ট করবেন, যা একজন ডেভেলপারকে SqueakyClean নাম পরিষ্কার করতে সাহায্য করবে।
৪টি টাস্কে আপনি ধীরে ধীরে clean মেথডটি গড়ে তুলবেন।
একটি বৈধ SqueakyClean নাম শূন্য বা তার বেশি সংখ্যক অক্ষর ও আন্ডারস্কোর নিয়ে গঠিত।
সব ক্ষেত্রেই ইনপুট স্ট্রিংটি নন-নাল হওয়ার নিশ্চয়তা আছে। মনে রাখবেন, clean মেথডটি একটি খালি স্ট্রিংকে বৈধ হিসেবে গণ্য করবে।
যেকোনো স্পেসকে আন্ডারস্কোর দিয়ে প্রতিস্থাপন করতে (static) SqueakyClean.clean() মেথডটি ইমপ্লিমেন্ট করুন। এটি শুরু ও শেষে থাকা স্পেসেও প্রযোজ্য।
SqueakyClean.clean("my Id");
// => "my___Id"
kebab-case থেকে camelCase-এ রূপান্তর করতে (static) SqueakyClean.clean() মেথডটি পরিবর্তন করুন।
SqueakyClean.clean("a-bc");
// => "aBc"
লিটস্পিককে সাধারণ লেখায় রূপান্তর করতে (static) SqueakyClean.clean() মেথডটি পরিবর্তন করুন।
সহজ রাখতে আমরা শুধু 4, 3, 0, 1 ও 7-কে যথাক্রমে a, e, o, l ও t দিয়ে প্রতিস্থাপন করব।
SqueakyClean.clean("H3ll0 W0rld");
// => "Hello_World"
SqueakyClean.clean("4 73s7");
// => "a_test"
যেসব ক্যারেক্টার অক্ষর নয়, সেগুলো বাদ দিতে (static) SqueakyClean.clean() মেথডটি পরিবর্তন করুন।
SqueakyClean.clean("a$#.b");
// => "ab"
Exercism-এ সাইন আপ করুন, Java ট্র্যাকের 26টি কনসেপ্ট158টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।