CodeGym /مدونة جافا /Random-AR /جافا تحويل شار إلى Int مع أمثلة
John Squirrels
مستوى
San Francisco

جافا تحويل شار إلى Int مع أمثلة

نشرت في المجموعة
في كثير من الأحيان، تحتاج المعلومات الرمزية التي يدخلها المستخدمون من لوحة المفاتيح إلى تحويلها إلى أرقام أو يجب أن يحصل المبرمج على أرقام منها. هناك بعض الطرق في Java للقيام بذلك. في هذه المقالة، سنتعرف على الطرق التي ستساعدنا في تحويل قيمة char إلى قيمة int.

صب النوع الضمني

تحويل النوع هو عملية تحويل قيمة نوع بيانات واحد إلى قيمة نوع بيانات آخر. يمكن أن يكون صب النوع يدويًا أو تلقائيًا حسب الأنواع. يجب أن تكون الأنواع متوافقة. في Java لدينا نوعان من الكتابة، الصريحة والضمنية. لا يمكن تنفيذ الأمر الضمني إلا إذا قمنا بتحويل المتغير من النوع "الأكبر" إلى النوع "الأصغر" (على سبيل المثال، من int إلى long ). إذا أردنا تحويل متغير من نوع char إلى نوع بيانات int، فغالبًا ما نحتاج إلى الحصول على قيمته المكافئة من جدول ASCII. كل أبجدية أو رمز يمكن إدخاله رقميًا له رقم صحيح فريد مطابق. على سبيل المثال، تحتوي الأبجدية "A" على رمز ASCII يبلغ 65. ومن خلال اختيار النوع، نقوم بتحويل قيمة الحرف بقوة إلى رمز عدد صحيح ASCII مكافئ لها. إليك مثال Java char to int باستخدام نوع الصب.

مثال Java char إلى int (باستخدام typeCasting)


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);
       }
   }
الإخراج هو:
قيمة ASCII لـ 'A' هي 65 قيمة ASCII لـ 'a' هي 97

صب نوع صريح

كما رأينا أعلاه، في حالة تحويل char إلى int، ليس من الضروري القيام بذلك بشكل صريح، حيث يتم استخدام 2 بايت لتخزين char، ويتم استخدام 4 بايت لتخزين int. أي أن النوع int "أكبر". ومع ذلك، كتمرين، يمكننا تحويل متغير char إلى عدد صحيح. ولهذه العملية نذكر (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);
       }
   }
الإخراج هو:
قيمة ASCII للحرف "A" هي 65

باستخدام getNumericValue()

تعمل getNumericValue() بشكل مشابه لنوع الكتابة، ولكن بدلاً من اتباع جدول ASCII، فإنها تتبع معيار ترميز Unicode. يمكن أن يمثل ASCII فقط مجموعة محددة من الرموز والأحرف مثل الحروف اللاتينية (بالإضافة إلى بعض رموز الأبجدية الوطنية) والأرقام وعلامات الترقيم وأحرف التحكم. يحتوي Unicode على أكثر من مليون قيمة تحتوي على أحرف ورموز لكل لغة في العالم. على سبيل المثال، قيمة A في Unicode هي \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);

       }
   }
الإخراج هو:
قيمة Unicode لـ '7' هي 7 قيمة Unicode لـ 'A' هي 10 قيمة Unicode لـ '*' هي -1

باستخدام ParseInt()

ParseInt() هي طريقة أخرى لتحويل الحرف إلى int. كما أنها تستخدم على نطاق واسع للتحويل بين أنواع البيانات الرقمية الأخرى مثل البيانات العائمة والمزدوجة والطويلة. يتطلب ParseInt() وسيطة واحدة على الأقل ووسيطين على الأكثر. الوسيطة الأولى هي الاسم المتغير للقيمة التي نقوم بتحويلها. الوسيطة الثانية هي الجذر الذي يشير إلى القيمة الأساسية للنظام العشري والثماني والست عشري وما إلى ذلك. ونظرًا لقدرة ParseInt() على تحويل أنواع البيانات مع وضع نظام الأرقام في الاعتبار أيضًا، فهو الخيار الأمثل لتحويل "الرقمية" "شار إلى int في Java. هناك نقطتان مهمتان يجب أخذهما في الاعتبار إذا كنت تريد استخدام هذه الطريقة. تقبل طريقة parseInt() وسيطات السلسلة فقط، لذا يجب عليك أولاً تحويل char إلى سلسلة (باستخدام String.valueOf ). لا يمكنك استخدام parseInt() لتحويل الحروف الهجائية أو الرموز الأخرى باستثناء القيم الرقمية المخزنة في نوع بيانات char. إذا قمت بإدخال قيم غير رقمية، فسوف تحصل على خطأ. هنا مثال جافا:

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 ton غير الرقمية:

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);
       }
   }
الإخراج هو:
استثناء في مؤشر الترابط "الرئيسي" java.lang.NumberFormatException: لسلسلة الإدخال: "q" في java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) في java.base/java.lang.Integer.parseInt (Integer.java:652) في java.base/java.lang.Integer.parseInt(Integer.java:770) في charToInt.ValueOf.main(ValueOf.java:6)

طرح "0"

هناك طريقة بسيطة جدًا لتحويل الحرف إلى عدد صحيح. للقيام بذلك، قم ببساطة بطرح قيمة ASCII للحرف "0" من الحرف. على سبيل المثال، للحصول على int 7 من الحرف "7":

int intValue = '7'-' 0 ';
لاحظ أن هذا يعمل للحصول على قيم int للأحرف الصحيحة فقط! إذا طرحت "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 أ 17 * -6

الاستنتاجات

إذا كنت بحاجة إلى تحويل char إلى int في Java، فاستخدم إحدى الطرق:
  • صب النوع الضمني // الحصول على قيم ASCII
  • حرف.getNumericValue()
  • Integer.parseInt() // مقترنًا مع String.valueOf())
  • طرح '0' // يعمل مع القيم الرقمية الصحيحة فقط
يمكنك أيضًا إجراء صب النوع الصريح. ومع ذلك، هذه عملية زائدة عن الحاجة: ليست هناك حاجة إليها، ولكنها تعمل فقط في Java.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION