كيفية تحويل سلسلة إلى int في Java
الشرط الوحيد لتحويل سلسلة إلى عدد صحيح في java هو أنه يجب أن يحتوي فقط على الأرقام التي تريد وضعها في متغير من النوع int ، باستثناء الحرف الأول الذي يشير إلى قيمة "-" سالبة أو "+" موجبة. على سبيل المثال ، نتيجة "-123" هي الرقم -123.كثير سوف يلقي ، لكن جافا لا تسمح بذلك.
< / div>
الاستثناء لا يمكن الإرسال من سلسلة إلى int< / b> يعني أن مترجم Java لا يسمح لسلسلة بالإرسال إلى int. هذا منطقي لأن الاثنين ليسا من نفس النوع.
The Integer
يحتوي الكائن الصحيح على سمة واحدة من النوع int. تحتوي هذه الفئة على عدة طرق لتحويل int إلى سلسلة وسلسلة إلى int.< / div>1) عن طريق إنشاء عدد صحيح جديد (سلسلة s) < / h3 >
1) عن طريق إنشاء عدد صحيح جديد (سلسلة s) < / h3 > يخصص هذا المنشئ كائنا جديدا يحتوي على عدد صحيح:
< / div>public class المدلى بها {
فراغ ثابت عام الرئيسية (سلسلة [] args) {
سلسلة nbs = "12" ؛
int ملحوظة;
nb = عدد صحيح جديد (nbs);
System.out.println (ملحوظة) ؛
}
}
< / pre> الإخراج:
< / div>12
< / pre>2) مع Integer.valueOf(String s)
طريقة نمط valueOf() إرجاع مثيل جديد من java.lang.Integer الذي يحتوي على القيمة الممثلة في الوسيطة String.
public class Cast {
الفراغ العام الثابت الرئيسي (String[] args) {
String nbs = "12";
int ملحوظة;
nb = عدد صحيح جديد (nbs);
System.out.println (ملحوظة) ؛
}
}
< / pre>الإخراج:
12
< / pre>3) مع Integer.parseInt (سلسلة s) < / h3 >نمط parseInt() قيمة عدد صحيح، تماما كما لو تم تمرير الوسيطة في valueOf(String s).
public class Cast {
الفراغ العام الثابت الرئيسي (String[] args) {
String nbs = "12";
int ملحوظة;
nb = Integer.parseInt(nbs);
System.out.println (ملحوظة) ؛
} < br / >}
< / pre> الإخراج:
< pre class = "prettyprint lang-java" >12< / pre> استثناء NumberFormatException ألقى < / h2 >NumberFormatException إذا لم تكن الوسيطة التي تم تمريرها بالتنسيق الصحيح. الأسباب هي:- تحتوي الوسيطة التي تم تمريرها على حرف واحد غير رقمي على الأقل.
- الرقم ليس عشريا مثل التعويم 12.4f.
تحسين إجراءاتنا
لتجنب إنهاء البرنامج ، سنرجع قيمة افتراضية إذا لم يتم احترام التنسيق.
public class Cast {
الفراغ الثابت العام الرئيسي (String[] args) {
String nbs = "12.4s";
int ملحوظة;
System.out.println (stringToInt (nbs ، 0)) ؛
}
سلسلة int ثابتة عامة ToInt (قيمة السلسلة ، int _default) {
try {
إرجاع Integer.parseInt (value);
} catch (NumberFormatException e) {
_default;
}
}
}
< / pre> الإخراج:
< pre class = "prettyprint lang-java" >0
< / pre>في الحالة التي يكون فيها المتغير nbs غير رقمي ، فإن الدالة stringToInt() 0 افتراضيا.
المراجع:
Oracle.com - معرف الفئة Integer< / span>< / a>
JRJC-تحويل السلسلة إلى int< / a>< / div>
< / div>
public class المدلى بها {
فراغ ثابت عام الرئيسية (سلسلة [] args) {
سلسلة nbs = "12" ؛
int ملحوظة;
nb = عدد صحيح جديد (nbs);
System.out.println (ملحوظة) ؛
}
}
< / pre> الإخراج:
< / div>12
< / pre>2) مع Integer.valueOf(String s)
طريقة نمط valueOf() إرجاع مثيل جديد من java.lang.Integer الذي يحتوي على القيمة الممثلة في الوسيطة String.public class Cast {
الفراغ العام الثابت الرئيسي (String[] args) {
String nbs = "12";
int ملحوظة;
nb = عدد صحيح جديد (nbs);
System.out.println (ملحوظة) ؛
}
}
< / pre>الإخراج:12
< / pre>3) مع Integer.parseInt (سلسلة s) < / h3 >
نمط parseInt() قيمة عدد صحيح، تماما كما لو تم تمرير الوسيطة في valueOf(String s).public class Cast {
الفراغ العام الثابت الرئيسي (String[] args) {
String nbs = "12";
int ملحوظة;
nb = Integer.parseInt(nbs);
System.out.println (ملحوظة) ؛
} < br / >}
< / pre> الإخراج:
< pre class = "prettyprint lang-java" >12< / pre>استثناء NumberFormatException ألقى < / h2 >
NumberFormatException إذا لم تكن الوسيطة التي تم تمريرها بالتنسيق الصحيح. الأسباب هي:لتجنب إنهاء البرنامج ، سنرجع قيمة افتراضية إذا لم يتم احترام التنسيق.
- تحتوي الوسيطة التي تم تمريرها على حرف واحد غير رقمي على الأقل.
- الرقم ليس عشريا مثل التعويم 12.4f.
تحسين إجراءاتنا
public class Cast {
الفراغ الثابت العام الرئيسي (String[] args) {
String nbs = "12.4s";
int ملحوظة;
System.out.println (stringToInt (nbs ، 0)) ؛
}
سلسلة int ثابتة عامة ToInt (قيمة السلسلة ، int _default) {
try {
إرجاع Integer.parseInt (value);
} catch (NumberFormatException e) {
_default;
}
}
}
< / pre> الإخراج:
< pre class = "prettyprint lang-java" >0
< / pre>في الحالة التي يكون فيها المتغير nbs غير رقمي ، فإن الدالة stringToInt() 0 افتراضيا.
المراجع:
Oracle.com - معرف الفئة Integer< / span>< / a>
JRJC-تحويل السلسلة إلى int< / a>< / div>