Java String to Int - كيفية تحويل سلسلة إلى عدد صحيح

يتم تمثيل كائنات السلسلة كسلسلة من الأحرف.

إذا كنت قد عملت في Java Swing ، فإنه يحتوي على مكونات مثل JTextField و JTextArea التي نستخدمها للحصول على مدخلاتنا من واجهة المستخدم الرسومية. يأخذ مدخلاتنا كسلسلة.

إذا أردنا إنشاء آلة حاسبة بسيطة باستخدام Swing ، فنحن بحاجة لمعرفة كيفية تحويل سلسلة إلى عدد صحيح. يقودنا هذا إلى السؤال - كيف يمكننا تحويل سلسلة إلى عدد صحيح؟

في جافا، يمكننا استخدام Integer.valueOf()و Integer.parseInt()تحويل سلسلة إلى عدد صحيح.

1. استخدم Integer.parseInt () لتحويل سلسلة إلى عدد صحيح

تقوم هذه الطريقة بإرجاع السلسلة كنوع بدائي int . إذا كانت السلسلة لا تحتوي على عدد صحيح ، فسيتم طرح NumberFormatException.

لذلك ، في كل مرة نقوم فيها بتحويل سلسلة نصية إلى int ، نحتاج إلى الاهتمام بهذا الاستثناء عن طريق وضع الشفرة داخل كتلة try-catch.

لنفكر في مثال على تحويل سلسلة إلى int باستخدام Integer.parseInt():

 String str = "25"; try{ int number = Integer.parseInt(str); System.out.println(number); // output = 25 } catch (NumberFormatException ex){ ex.printStackTrace(); }

دعنا نحاول كسر هذا الرمز عن طريق إدخال عدد صحيح غير صالح:

 String str = "25T"; try{ int number = Integer.parseInt(str); System.out.println(number); } catch (NumberFormatException ex){ ex.printStackTrace(); }

كما ترى في الكود أعلاه ، حاولنا التحويل 25Tإلى عدد صحيح. هذا ليس مدخلات صالحة. لذلك ، يجب أن يطرح NumberFormatException.

هذا هو إخراج الكود أعلاه:

java.lang.NumberFormatException: For input string: "25T" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at OOP.StringTest.main(StringTest.java:51)

بعد ذلك ، سننظر في كيفية تحويل سلسلة إلى عدد صحيح باستخدام Integer.valueOf()الطريقة.

2. استخدم Integer.valueOf () لتحويل سلسلة إلى عدد صحيح

تقوم هذه الطريقة بإرجاع السلسلة ككائن عدد صحيح . إذا نظرت إلى وثائق Java ، Integer.valueOf()فقم بإرجاع كائن عدد صحيح مكافئ لـ new Integer(Integer.parseInt(s)).

سنضع الكود الخاص بنا داخل كتلة try-catch عند استخدام هذه الطريقة. دعونا نفكر في مثال باستخدام Integer.valueOf()الطريقة:

 String str = "25"; try{ Integer number = Integer.valueOf(str); System.out.println(number); // output = 25 } catch (NumberFormatException ex){ ex.printStackTrace(); }

الآن ، دعنا نحاول كسر الكود أعلاه عن طريق إدخال رقم صحيح غير صالح:

 String str = "25TA"; try{ Integer number = Integer.valueOf(str); System.out.println(number); } catch (NumberFormatException ex){ ex.printStackTrace(); }

على غرار المثال السابق ، فإن الكود أعلاه سوف يطرح استثناء.

هذا هو إخراج الكود أعلاه:

java.lang.NumberFormatException: For input string: "25TA" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:766) at OOP.StringTest.main(StringTest.java:42)

يمكننا أيضًا إنشاء طريقة للتحقق مما إذا كانت السلسلة التي تم تمريرها رقمية أم لا قبل استخدام الطرق المذكورة أعلاه.

لقد قمت بإنشاء طريقة بسيطة للتحقق مما إذا كانت السلسلة التي تم تمريرها رقمية أم لا.

public class StringTest { public static void main(String[] args) { String str = "25"; String str1 = "25.06"; System.out.println(isNumeric(str)); System.out.println(isNumeric(str1)); } private static boolean isNumeric(String str){ return str != null && str.matches("[0-9.]+"); } }

الخرج هو:

true true

و isNumeric()يأخذ طريقة سلسلة كحجة. أولا يتحقق ما إذا كان الأمر كذلك nullأم لا. بعد ذلك نستخدم matches()الطريقة للتحقق مما إذا كانت تحتوي على أرقام من 0 إلى 9 وحرف نقطة.

هذه طريقة بسيطة للتحقق من القيم الرقمية. يمكنك كتابة أو البحث في Google عن المزيد من التعبيرات العادية المتقدمة لالتقاط الأرقام حسب حالة الاستخدام الخاصة بك.

من أفضل الممارسات التحقق مما إذا كانت السلسلة التي تم تمريرها رقمية أم لا قبل محاولة تحويلها إلى عدد صحيح.

شكرا لقرائتك.

صورة المشاركة بواسطة ?? Janko Ferlič على Unsplash

يمكنك التواصل معي على المتوسط.

ترميز سعيد!