ระดับความรู้ที่จำเป็นโดยประมาณ: ภารกิจ Java Syntax และ Java Core เล็กน้อย
ในตอนท้ายของภารกิจ 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 = "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 ไม่ใช่ตัวเลข และควรปล่อยให้มันเป็นสตริงดีกว่า โปรแกรมของเราได้รับการออกแบบมาเพื่อให้คุณพยายามแปลง "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