JavaRush /จาวาบล็อก /Random-TH /คำถามและคำตอบ: วิธีแปลง String เป็น int ใน Java อย่างถูกต...

คำถามและคำตอบ: วิธีแปลง String เป็น int ใน Java อย่างถูกต้องได้อย่างไร

เผยแพร่ในกลุ่ม
ระดับความรู้ที่จำเป็นโดยประมาณ: ภารกิจ Java Syntax และ Java Core เล็กน้อย
คำถามและคำตอบ: วิธีแปลง String เป็น int ใน Java อย่างถูกต้องได้อย่างไร  - 1
ในตอนท้ายของภารกิจ JavaRush แรก เราเรียนรู้เกี่ยวกับการแปลงประเภท ในการบรรยายระดับ 10 คุณจะเห็นว่าการแปลงintเป็นนั้นStringง่ายมาก และโดยทั่วไปแล้ว การแปลงแบบพื้นฐานเกือบทุกประเภทสามารถแปลงเป็นแบบได้Stringโดยไม่มีปัญหา
int x = 5;
String text = "X=" + x;
นอกจากนี้ ผู้ที่ทำภารกิจ Java Syntax ระดับ 10 สำเร็จแล้ว จะทราบดีว่าเป็นไปไม่ได้ที่จะแปลงการอ้างอิงเป็นตัวเลขเป็นการอ้างอิงสตริง แล้ววิธีที่ดีที่สุดในการแปลงสตริงเป็นจำนวนเต็มดั้งเดิมคืออะไร? จะดีกว่าถ้าใช้วิธีparseIntคลาส IntegerเมธอดparseIntจะต้องแปลงStringเป็นintและส่งข้อยกเว้นNumberFormatExceptionหากไม่สามารถแปลงสตริงเป็น type 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 ไม่ใช่ตัวเลข และควรปล่อยให้มันเป็นสตริงดีกว่า โปรแกรมของเราได้รับการออกแบบมาเพื่อให้คุณพยายามแปลง "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