"হাই, অ্যামিগো! এটা আবার আমি। আমি আপনাকে আরেকটি মোটামুটি সাধারণ মোড়কের ক্লাস সম্পর্কে বলতে চাই। আজ আমরা ক্যারেক্টার সম্পর্কে কথা বলব, চারের জন্য মোড়ক।"

"এই ক্লাসটিও বেশ সহজ।"

কোড
class Character
{
 private final char value;

 Character(char value)
 {
  this.value = value;
 }

 public char charValue()
 {
  return value;
 }

 static final Character cache[] = new Character[127 + 1];

 public static Character valueOf(char c)
 {
  if (c <= 127)
   return cache[(int)c];

  return new Character(c);
 }

 public int hashCode()
 {
  return (int)value;
 }

 public boolean equals(Object obj)
 {
  if (obj instanceof Character)
  {
   return value == ((Character)obj).charValue();
  }
  return false;
 }
}

"এতে নিম্নলিখিত আছে:"

1) একটি কনস্ট্রাক্টর যা অভ্যন্তরীণ মান নেয় এবং একটি charValue পদ্ধতি যা এটি ফেরত দেয়।

2) একটি valueOf পদ্ধতি যা ক্যারেক্টার অবজেক্ট রিটার্ন করে কিন্তু 0 থেকে 127 মান সহ অবজেক্ট ক্যাশে করে। ঠিক যেমন ইন্টিজার, শর্ট এবং বাইট।

3) হ্যাশকোড() এবং সমান পদ্ধতি - আবার, এখানে অবাক হওয়ার কিছু নেই।

"এবং এটিতে আরও অনেক দরকারী পদ্ধতি রয়েছে (উপরে দেখানো হয়নি)। আমি এখানে আপনার জন্য কয়েকটি তালিকা করব:"

পদ্ধতি বর্ণনা
boolean isDefined(char)
অক্ষরটি কি ইউনিকোড অক্ষর?
boolean isDigit(char)
অক্ষর একটি অঙ্ক?
boolean isISOControl(char)
চরিত্র একটি নিয়ন্ত্রণ চরিত্র?
boolean isLetter(char)
অক্ষর কি অক্ষর?
boolean isJavaLetterOrDigit()
অক্ষর একটি অক্ষর বা একটি অঙ্ক?
boolean isLowerCase(char)
এটি একটি ছোট হাতের অক্ষর?
boolean isUpperCase(char)
এটি একটি বড় হাতের অক্ষর?
boolean isSpaceChar(char)
চরিত্রটি কি একটি স্থান বা অনুরূপ কিছু (অনেক অদৃশ্য অক্ষর আছে)?
boolean isTitleCase(char)
অক্ষরটি কি শিরোনামের অক্ষর?

"আপনাকে ধন্যবাদ, কিম। আমি মনে করি এই পদ্ধতিগুলির মধ্যে কিছু আমার জন্য দরকারী হবে।"