אובייקטים מחרוזת מיוצגים כמחרוזת תווים.
אם עבדת ב- Java Swing, יש בו רכיבים כגון JTextField ו- JTextArea בהם אנו משתמשים כדי לקבל את הקלט שלנו מממשק המשתמש. זה לוקח את הקלט שלנו כמחרוזת.
אם אנו רוצים ליצור מחשבון פשוט באמצעות Swing, עלינו להבין כיצד להמיר מחרוזת למספר שלם. זה מוביל אותנו לשאלה - כיצד נוכל להמיר מחרוזת למספר שלם?
ב- Java, אנו יכולים להשתמש Integer.valueOf()
ו Integer.parseInt()
להמיר מחרוזת למספר שלם.
1. השתמש ב- Integer.parseInt () כדי להמיר מחרוזת למספר שלם
שיטה זו מחזירה את המחרוזת כסוג פרימיטיבי int . אם המחרוזת אינה מכילה מספר שלם חוקי אז היא תזרוק NumberFormatException.
לכן, בכל פעם שאנו ממירים מחרוזת ל- int, עלינו לדאוג לחריג זה על ידי הצבת הקוד בתוך גוש הניסיון לתפוס.
הבה נבחן דוגמה להמרת מחרוזת ל- 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()
מחזיר אובייקט שלם שווה ערך ל- a new Integer(Integer.parseInt(s))
.
אנו מציבים את הקוד שלנו בבלוק הניסיון לתפוס בעת שימוש בשיטה זו. הבה נבחן דוגמה 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 ותו נקודתי.
זו דרך פשוטה לבדוק ערכים מספריים. אתה יכול לכתוב או לחפש בגוגל ביטויים רגולריים מתקדמים יותר כדי ללכוד מספרים בהתאם למקרה השימוש שלך.
זה השיטה הטובה ביותר לבדוק אם מחרוזת העברה מספרית או לא לפני שניסית להמיר אותה למספר שלם.
תודה שקראת.
פרסם תמונה מאת ?? ינקו פרליץ 'ב- Unsplash
אתה יכול להתחבר אלי במדיום.
קידוד שמח!