בדרך כלל בסעיף א ממשק משתמש גרפי, יהיו שדות טקסט שמצפים מהמשתמש להזין בערך מספרי. ערך מספר זה יסתיים ב- מחרוזת אובייקט שלא ממש עוזר לתוכנית שלך אם אתה רוצה לעשות חשבון. למרבה המזל, ישנן שיעורי עטיפה המספקים שיטות להמרת ערכי המיתר למספרים ולכיתת המיתרים יש שיטה להמיר אותם שוב.
שיעורי עטיפה
ה סוגי נתונים פרימיטיביים העוסקים במספרים (כלומר, בתים, אינט, כפול, צף, ארוך וקצר) כולם בעלי שוויון מעמדי. שיעורים אלה ידועים ככיתות עטיפה שכן הם לוקחים סוג נתונים פרימיטיבי, ומקיפים אותו בפונקציונליות של כיתה. לדוגמא, למחלקה הכפולה יהיה ערך כפול כנתוניו ויספק שיטות לתמרון ערך זה.
לכל שיעורי העטיפה הללו יש שיטה הנקראת valueOf. שיטה זו לוקחת מחרוזת כוויכוח ומחזירה מופע של מחלקת העטיפה. לדוגמא, נניח שיש לנו מיתר בערך של עשרה:
מספר מחרוזת = "10";
השימוש במספר זה כמחרוזת אינו מועיל לנו ולכן אנו משתמשים בכיתה מספר שלם כדי להמיר אותו לאובייקט שלם:
מספר שלם המרה מספר = מספר שלם. ערך מספר (מספר);
עכשיו המספר יכול לשמש כמספר ולא כמחרוזת:
convertNumber = convertNumber + 20;
אתה יכול גם לגרום להמרה לעבור ישירות לסוג נתונים פרימיטיבי:
int convertNumber = מספר שלם. valueOf (מספר) .intValue ();
עבור סוגי נתונים פרימיטיביים אחרים, אתה פשוט משלב את מחלקת העטיפה הנכונה - בייט, מספר שלם, כפול, צף, ארוך קצר.
הערה: עליכם לוודא שניתן לנתח את המחרוזת לסוג הנתונים המתאים. אם לא, תסתיים בשגיאת זמן ריצה. לדוגמה, מנסה להפוך "עשר" למספר שלם:
מחרוזת מספר = "עשר";
int convertNumber = מספר שלם. valueOf (מספר) .intValue ();
תפיק מספר NumberFormatException מכיוון שלמהדר אין מושג ש"עשרה "אמור להיות 10.
באופן עדין יותר אותה שגיאה תתרחש אם תשכח ש- 'int' יכול להכיל רק מספרים שלמים:
מספר מחרוזת = "10.5";
int convertNumber = מספר שלם. valueOf (מספר) .intValue ();
המהדר לא יקטע את המספר הוא רק יחשוב שהוא לא מתאים ל"אינט "ושהגיע הזמן לזרוק מספר NumberFormatException.
המרת מספרים למיתרים
כדי להפוך מספר למחרוזת עוקב אחר אותו סוג של תבנית כמו שלכיתה מחרוזת יש גם שיטת valueOf. זה יכול לקחת כל אחד ממספרי סוגי הנתונים הפרימיטיביים כוויכוח ולייצר מחרוזת:
int מספר 20 = 20;
מחרוזת המרה = String.valueOf (numberTwenty);
מה שמציב את "20" כערך המיתר של co-nverted.
או שתוכל להשתמש בשיטת toString בכל אחת משיעורי העטיפה:
מחרוזת המרה = מספר שלם. ToString (מספר עשרים);
שיטת toString משותפת לכל סוגי האובייקטים - רוב הזמן היא רק תיאור של האובייקט. עבור שיעורי עטיפה, תיאור זה הוא הערך האמיתי שהם מכילים. בכיוון זה ההמרה קצת יותר חזקה. אם יש להשתמש בכיתה הכפולה במקום מספר שלם:
מחרוזת המרה = Double.toString (מספר עשרים);
התוצאה לא תגרום ל שגיאת זמן ריצה. המשתנה המומר יכיל את המחרוזת "20.0".
יש גם דרך עדינה יותר להמיר מספרים כשאתה שרשור מיתרים. אם היה צריך להיבנות מיתר כמו:
String aboutDog = "הכלב שלי הוא" + מספר עשרים + "בן.";
ההמרה של מספר ה- intTenty נעשית אוטומטית.