Hỏi ý nghĩa câu lệnh Integer.parseInt trong java

chào anh chị và các bạn trên forum , em có câu lệnh này không hiểu tại sao nó đã khai báo kiểu unt rồi mà lại cho bằng cái Integer.parseInt… kia ạ, mong mọi người giúp em , em không hiểu ý nghĩa của lệnh này ạ :
int id=Integer.parseInt( scn.nextLine() );

System.out.println("Add student's id: ");
int id=Integer.parseInt( scn.nextLine() );

scn.nextLine() : là lấy một chuỗi ký tự nhập từ màn hình vào

Integer.parseInt( scn.nextLine() ) : là phân tích chuỗi đó thành số kiểu Integer

Cách này nếu bạn nhập : 12a456 có chữ thì sẽ ném ra ngoại lệ NumberFormatException

2 Likes

cám ơn anh đã giúp em ạ . Em muốn hỏi thêm là , tại sao ở đó họ không dùng thẳng là int id=scn.nextInt(); luôn mà lại phải code như trên ạ :stuck_out_tongue:

Mình cho rằng có thể người nhận dùng để nhận các số kiểu float, double ( có các hậu tố f sau )
Khi bạn nhập 10f chăng hạn, nó sẽ nhận về làm chuỗi kí tự và Interger,parse kia nó sẽ cast về giá trị của kiểu int.
Còn thằng Int kiêu nó sẽ chỉ nhập số int.
Thử đọc docment xem :smiley:

1 Like

Dễ hiểu thôi mà , đó là để dễ bắt các ngoại lệ nếu người dùng nhập vào chữ , nếu em để nextInt() em phải try catch ngay lúc nhập vào , mà như vậy thì không đẹp code cho lắm. Nên cứ nhập vô chữ hay số gì cũng được rồi em mới kiểm tra xem nó hợp lệ hay không và thông báo cho người dùng , theo cách này thì em code dễ hơn ^^~ . Vậy thôi

2 Likes

Em cám ơn anh rất nhiều ạ :smiley:

Bạn gán cả tag parse vào nhưng đây đâu phải parse đâu :grinning:

1 Like

anh oi lien he gmail em ty em muon hoi chut dc k a [email protected]

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?