একটি শব্দকে উল্টালে যদি একই রকম থাকে সে শব্দ গুলোকেPalindrome বলে। যেমন মাকে অনেকেই আদর করে অনেকেই MoM ডাকে। MoM একটি Palindrome। MoM কে উল্টিয়ে লিখলে তা MoM ই হবে।নিচে একটি প্রোগ্রাম দেওয়া হল যার সাহায্যে একটি শব্দ Palindrome কিনা তা চেক করা যাবে।
কিভাবে প্রোগ্রামটি কাজ করছে বা কি ভাবে আমি লিখছিঃ
- একটি স্ট্রিং বা ওয়ার্ড ইউজার থেকে ইনপুট নিয়েছি।
- তাকে ছোট হরপে পরিনত করেছি। [ আমরা দুইটি স্টিং চেক করব, যদি দুটি একই রকম না হয় তাহলে কিন্তু হবে না, Java এর কাছে Abc এবং abc কিন্তু আলাদা। তাই কম্পেয়ার করার সুবিদার জন্য আমরা সব গুলোকে ছোট হাতের অক্ষরে পরিনত করে নিয়েছি। আপনি ইচ্ছে করলে বড় হাতের অক্ষতেও পরিনত করে নিতে পারেন। তার জন্য toUpperCase(); মেথড ব্যবহার করলেই হবে।
- তাকে রিভার্স মেথড দিয়ে রিভার্স করেছি। এবং তা আরেকটা স্টিং এ রেখে দিয়েছি। [ রিভার্স মেথড দিয়ে ঐ শব্দ টিকে উল্টিয়ে নিয়েছি, যদি ইউজার Abc ইনপুট করে তা, আমাকে দিবে cbA]
- এবার দুইটা স্টিং কম্পেয়ার করে দেখেছি। যদি দুটি একই হয় তাহলে তা Palindrome আর না হয় Palindrome না। শেষ 🙂
import java.io.BufferedReader; import java.io.InputStreamReader; public class Palindrome { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s1 = new String(); s1 =br.readLine(); s1 = s1.toLowerCase(); String s2 = new StringBuffer(s1).reverse().toString(); if(s1.equals(s2)){ System.out.println("Palindrome"); }else System.out.println("Not Palindrome"); } }
দেখুননা, আমি স্টেপে যত গুলো লেখা লিখছি উপরে, তার থেকে কোড অনেক কম তাই না?
জাভাতে লেখার শুবিধা হচ্ছে যদি মেথড গুলো মনে থাকে তাহলে অনেক গুলো কোড করা থেকে মুক্তি পাওয়া যায়। আমরা যদি এটা সি তে লিখতে যেতাম তাহলে অনেক গুলো কোড লিখতে হতো। একবার চেষ্টা করে দেখুন সিতে 🙂
প্রোগ্রামিং পারেন কিন্তু স্টিং এর উপর ভালো দক্ষতা নেই এমন হলে তো হবে না, কারন বড় প্রজেক্টে স্টিং নিয়ে অনেক কাজ করতে হয়। ছোট্ট একটা উদাহরন দিচ্ছি, ফেসবুকে লগিন করুন, স্ট্যাটাস দিন, কমেন্ট করুন এমনকি আমার এ লেখাটাও স্ট্রিং অপারেশনের মধ্যে পড়ে। যাই হোক এখানে কিন্তু জাভার অনেক গুলো স্টিং মেথডের সাথে আমরা পরিচিত হয়ে গিয়েছি। সামনে কাজে লাগবে।