JavaRush /בלוג Java /Random-HE /שאלה ותשובה: כיצד להמיר נכון String ל-int ב-Java?

שאלה ותשובה: כיצד להמיר נכון String ל-int ב-Java?

פורסם בקבוצה
רמה משוערת של ידע נדרש: קווסט Java Syntax וקצת Java Core.
שאלה ותשובה: כיצד להמיר נכון מחרוזת ל-int ב-Java?  - 1
בסוף המסע הראשון של 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 = "fred"; // use this if you need to test the //exception below
String s = "100";

    try
    {
      // this is where String is converted to int
      int i = Integer.parseInt(s.trim());

      // display the value after conversion
      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 ().
ענתה על ידי: אליס ווטסון
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION