רמה משוערת של ידע נדרש: קווסט Java Syntax וקצת Java Core.
בסוף המסע הראשון של JavaRush אנו לומדים על המרת סוג. בהרצאות רמה 10 אפשר היה לראות שההמרה לפשוטה int
מאוד String
, ובכלל, כמעט לכל סוג פרימיטיבי ניתן להמיר String
ללא בעיות.
int x = 5;
String text = "X=" + x;
כמו כן, מי שכבר השלים רמה 10 של קווסט Java Syntax יודע שאי אפשר להמיר הפניה למספר להפניה למחרוזת. אז מהי הדרך הטובה ביותר להמיר מחרוזת למספר שלם פרימיטיבי? עדיף לעשות זאת באמצעות שיטת parseInt
המחלקה Integer
. השיטה parseInt
חייבת להמיר String
אל int
וזורקת חריג NumberFormatException
אם לא ניתן להמיר את המחרוזת לסוג int
.
דוגמא
שורה בסיסית הממירה מחרוזת למספר שלם:
int i = Integer.parseInt (myString);
אם המחרוזת המסומנת על ידי המשתנה myString
היא מספר שלם חוקי, כגון "1", "200", Java תמיר אותו בשקט לסוג נתונים פרימיטיבי int
. אם מסיבה כלשהי זה נכשל, פעולה כזו עלולה לגרום לחריגה NumberFormatException
, אז כדי שהתוכנית תעבוד נכון עבור כל מחרוזת, אנחנו צריכים קצת יותר קוד. תוכנית המדגימה את שיטת ההמרה Java String
ל int
, בקרה על אפשרי NumberFormatException
:
public class JavaStringToIntExample
{
public static void main (String[] args)
{
String s = "100";
try
{
int i = Integer.parseInt(s.trim());
System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
דִיוּן
כאשר תלמדו את הדוגמה למעלה, תראו שהשיטה Integer.parseInt (s.trim ())
משמשת כדי להפוך מחרוזת s
למספר שלם i
, וזה קורה בשורת הקוד הבאה:
int i = Integer.parseInt (s.trim ())
אבל לפעמים המרת מחרוזת למספר פשוט לא תעבוד. בדוגמה שלנו, מחרוזת כזו היא השם fred. אנחנו יכולים לדבר על קודים שבהם נכתבות אותיות במחשב, אבל מבחינה פורמלית, פרד הוא לא מספר, ועדיף להשאיר אותו כמחרוזת. התוכנית שלנו תוכננה כך שאם תנסה להמיר "fred" למספר, התהליך Integer parseInt
יזרוק חריגה NumberFormatException
, שעליך לטפל בה בבלוק try / catch
. במקרה זה אתה לא צריך להשתמש בשיטת trim ()
class String
, אבל בתכנות אמיתי אתה צריך להשתמש בה. אז הראינו לך את זה. מאז שנושא זה עלה, הנה כמה "רמזים" על נושא השיעורים String
ו Integer
:
Integer.toString (int i)
משמש להמרה int
למחרוזות Java.
- אם ברצונך להמיר אובייקט
String
לאובייקט Integer
(ולא למחלקה פרימיטיבית int
), השתמש בשיטת valueOf ()
on-class Integer
במקום ב- parseInt ()
.
- אם אתה צריך להמיר מחרוזות לשדות Java פרימיטיביים נוספים, השתמש בשיטות כמו זו
Long.parseLong ()
.
ענתה על ידי: אליס ווטסון
GO TO FULL VERSION