CodeGym /Java Blog /এলোমেলো /জাভা উদাহরণ সহ Char int-এ রূপান্তর করুন
John Squirrels
লেভেল 41
San Francisco

জাভা উদাহরণ সহ Char int-এ রূপান্তর করুন

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

অন্তর্নিহিত প্রকার কাস্টিং

টাইপ কাস্টিং হল এক ডাটা টাইপের মানকে অন্য ডাটা টাইপের ভ্যালুতে রূপান্তর করার প্রক্রিয়া। প্রকারের উপর নির্ভর করে টাইপ কাস্টিং ম্যানুয়াল বা স্বয়ংক্রিয়ভাবে হতে পারে। প্রকারগুলি সামঞ্জস্যপূর্ণ হওয়া উচিত। জাভাতে আমরা দুটি ধরণের টাইপকাস্টিং পেয়েছি, স্পষ্ট এবং অন্তর্নিহিত। ইমপ্লিসিট শুধুমাত্র তখনই করা যেতে পারে যখন আমরা ভেরিয়েবলটিকে "বড়" থেকে "ছোট" টাইপে রূপান্তর করি (বলুন, int থেকে লং)) আমরা যদি char টাইপের একটি ভেরিয়েবলকে int ডেটা টাইপে রূপান্তর করতে চাই, তবে প্রায়শই আমাদের ASCII টেবিল থেকে এর সমতুল্য মান পেতে হবে। ডিজিটালভাবে প্রবেশ করা যেতে পারে এমন প্রতিটি বর্ণমালা বা চিহ্নের একটি সংশ্লিষ্ট অনন্য পূর্ণসংখ্যা রয়েছে। উদাহরণস্বরূপ, বর্ণমালা 'A'-এর একটি ASCII কোড 65। টাইপ কাস্টিং দ্বারা, আমরা জোরপূর্বক অক্ষর মানটিকে তার সমতুল্য ASCII পূর্ণসংখ্যা কোডে রূপান্তর করছি। এখানে টাইপ কাস্টিং ব্যবহার করে int উদাহরণের জন্য আমাদের জাভা চর দেওয়া হল।

জাভা চর থেকে int উদাহরণ (টাইপকাস্টিং ব্যবহার করে)


package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
আউটপুট হল:
'A'-এর ASCII মান হল 65 'a'-এর ASCII মান হল 97৷

স্পষ্ট টাইপ ঢালাই

আমরা উপরে দেখেছি, char থেকে int রূপান্তরের ক্ষেত্রে, এটি স্পষ্টভাবে করার প্রয়োজন নেই, যেহেতু 2 বাইট ব্যবহার করা হয় char সংরক্ষণ করতে, এবং 4 বাইট ব্যবহার করা হয় int সংরক্ষণ করতে। অর্থাৎ, int টাইপ "বৃহত্তর"। তবুও, একটি ব্যায়াম হিসাবে, আমরা স্পষ্টভাবে একটি পূর্ণসংখ্যাতে একটি চর ভেরিয়েবল নিক্ষেপ করতে পারি। এই অপারেশনের জন্য, আমরা বন্ধনীতে (int) উল্লেখ করি।

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
আউটপুট হল:
'A'-এর ASCII মান হল 65

getNumericValue() ব্যবহার করে

getNumericValue() টাইপ কাস্টিং এর মতোই কাজ করে, কিন্তু ASCII টেবিল অনুসরণ করার পরিবর্তে, এটি ইউনিকোড এনকোডিং মান অনুসরণ করে। ASCII শুধুমাত্র লাতিন অক্ষর (এছাড়া কিছু জাতীয় বর্ণমালার চিহ্ন), সংখ্যা, বিরাম চিহ্ন এবং নিয়ন্ত্রণ অক্ষরের মতো প্রতীক এবং অক্ষরের একটি নির্দিষ্ট সেট উপস্থাপন করতে পারে। ইউনিকোডে বিশ্বের প্রতিটি ভাষার জন্য অক্ষর এবং চিহ্ন সমন্বিত এক মিলিয়নেরও বেশি মান রয়েছে। উদাহরণস্বরূপ, ইউনিকোডে A-এর মান \u0041 যা 10-এর সাংখ্যিক মানের সমতুল্য। অক্ষরের কোনো সংখ্যাসূচক মান না থাকলে, পদ্ধতিটি -1 প্রদান করে। এই পদ্ধতি ব্যবহার করে অ-নেতিবাচক পূর্ণসংখ্যা ফেরত দেওয়া সুবিধাজনক হতে পারে।

package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
আউটপুট হল:
'7'-এর ইউনিকোড মান হল 7 'A'-এর ইউনিকোড মান হল 10 '*'-এর ইউনিকোড মান হল -1

ParseInt() ব্যবহার করে

ParseInt() char কে int-এ রূপান্তর করার আরেকটি পদ্ধতি। এটি অন্যান্য সাংখ্যিক ডেটা প্রকারের পাশাপাশি একটি ফ্লোট, ডবল এবং লং এর মধ্যে ক্রস কনভার্ট করতেও ব্যাপকভাবে ব্যবহৃত হয়। ParseInt() এর জন্য কমপক্ষে একটি আর্গুমেন্ট এবং সর্বাধিক দুটি আর্গুমেন্ট প্রয়োজন। প্রথম আর্গুমেন্ট হল আমরা যে মানটিকে রূপান্তর করছি তার পরিবর্তনশীল নাম। দ্বিতীয় যুক্তিটি হল রেডিক্স যা দশমিক, অক্টাল, হেক্সাডেসিমেল ইত্যাদির ভিত্তি মানকে নির্দেশ করে। ParseInt() এর ক্ষমতার কারণে সংখ্যা পদ্ধতির সাথে সাথে ডেটা প্রকারগুলিকেও রূপান্তর করতে পারে, এটি "সংখ্যাসূচক" রূপান্তর করার জন্য একটি সর্বোত্তম পছন্দ। ” char to int জাভাতে। আপনি যদি এই পদ্ধতিটি ব্যবহার করতে চান তবে দুটি গুরুত্বপূর্ণ বিষয় মাথায় রাখতে হবে। parseInt()পদ্ধতি শুধুমাত্র স্ট্রিং আর্গুমেন্ট গ্রহণ করে, তাই আপনাকে প্রথমে char স্ট্রিং-এ রূপান্তর করতে হবে ( String.valueOf ব্যবহার করে )। আপনি parseInt() ব্যবহার করতে পারবেন না বর্ণমালা বা অন্যান্য চিহ্ন রূপান্তর করার জন্য চর ডেটা টাইপে সংরক্ষিত সাংখ্যিক মান ছাড়া। আপনি যদি অ-সংখ্যাসূচক মান ইনপুট করেন, আপনি একটি ত্রুটি পাবেন। এখানে একটি জাভা উদাহরণ:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
আউটপুট হল:
7
আসুন parseInt টন অ-সংখ্যাসূচক মান ব্যবহার করার চেষ্টা করি:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
আউটপুট হল:
থ্রেড "main" java.lang.NumberFormatException-এ ব্যতিক্রম: ইনপুট স্ট্রিং এর জন্য: java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) এ java.base/java.lang.Integer.parseInt এ "q" (Integer.java:652) java.base/java.lang.Integer.parseInt(Integer.java:770) এ charToInt.ValueOf.main(ValueOf.java:6)

'0' বিয়োগ করা হচ্ছে

একটি অক্ষরকে পূর্ণসংখ্যায় রূপান্তর করার একটি খুব সহজ উপায় রয়েছে। এটি করার জন্য, অক্ষর থেকে "0" অক্ষরের ASCII মানটি বিয়োগ করুন। উদাহরণস্বরূপ, "7" অক্ষর থেকে int 7 পেতে:

int intValue = '7'-' 0 ';
দ্রষ্টব্য, এটি শুধুমাত্র পূর্ণসংখ্যা অক্ষরের জন্য int মান পাওয়ার জন্য কাজ করে! আপনি যদি 'A' থেকে '0' বিয়োগ করেন, বলুন, 'A', পদ্ধতিটি কেবল শূন্যের ASCII কোড এবং A অক্ষরের মধ্যে পার্থক্য ফিরিয়ে দেবে। এখানে একটি উদাহরণ দেওয়া হল।

package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');
      
   }

}
আউটপুট হল:
7 7 A 17 * -6

উপসংহার

আপনি যদি জাভাতে char কে int-এ রূপান্তর করতে চান তবে একটি পদ্ধতি ব্যবহার করুন:
  • অন্তর্নিহিত টাইপ কাস্টিং // ASCII মান পাওয়া
  • Character.getNumericValue()
  • Integer.parseInt() // String.valueOf()) এর সাথে জোড়ায়
  • '0' বিয়োগ করা // শুধুমাত্র পূর্ণসংখ্যার মানের জন্য কাজ করে
আপনি স্পষ্ট টাইপ কাস্টিংও করতে পারেন। যাইহোক, এটি একটি অপ্রয়োজনীয় অপারেশন: এটির প্রয়োজন নেই, তবে জাভাতে কাজ করে।
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION