Cách sử dụng parseInt trong Java

Ngày đăng: 23/06/2020   -    Cập nhật: 05/02/2021
Phương thức parseInt trong Java giúp chuyển đổi dữ liệu sang kiểu Int rất dễ dàng. Hôm nay mình sẽ hướng dẫn bạn sử dụng nó một cách kỹ càng nhất.

Khi làm việc với Java, đặc biệt là khi làm việc với các kiểu dữ liệu, không phải lúc nào dữ liệu ta nhận được cũng đúng định dạng mà ta mong muốn.

Đôi khi, việc khác kiểu gây ra rất nhiều khó khăn cho việc xử lý và ta không thể ép buộc người dùng phải trả về cho đúng kiểu dữ liệu chúng ta cần.

Vì thế, Integer.parseInt() sinh ra để giải quyết vấn đề này cho bạn.


1. Phương thức parseInt trong Java là gì? Khi nào cần sử dụng đến nó?


Phương thức parseInt trong Java

Phương thức parseInt trong Java

Phương thức parseInt() là một phương thức của lớp Integer trong gói java.lang được sử dụng để chuyển String sang Int trong Java.

Cách chuyển đổi được phân biệt tùy thuộc vào tham số của nó.

Thông thường có 2 biến thể cơ bản được sử dụng nhiều nhất là:


  • parseInt(String string)
  • parseInt(String string, int radix)

Mặc dù việc chuyển đổi đối tượng String thành Integer là một công cụ cơ bản, nhưng bạn cần phải nắm vững nó.

Bởi vì, trong quá trình học và làm việc với Java, bạn sẽ gặp rất nhiều trường hợp phải chuyển đổi từ đối tượng String sang kiểu dữ liệu khác.

> Tham khảo: TỰ HỌC JAVA (Toàn tập)

Phương thức Integer.parseInt là một API Java rất thuận tiện để chuyển đổi đầu vào của người dùng ở định dạng Chuỗi thành một loại đối tượng mạnh hơn, trong trường hợp này là Integer.


2. Hướng dẫn sử dụng phương thức parseInt trong Java


Như trong phần giới thiệu trên, parseInt() có hai biến thể cơ bản, cả hai phương thức đều chuyển đổi chuỗi thành số nguyên tương đương.

Sự khác biệt duy nhất là của tham số radix.

Phương thức đầu tiên có thể được coi là tương đương với phương thức thứ hai nếu radix = 10 (Số thập phân).

Trong đó:


  • string: Một chuỗi cần được chuyển đổi thành số nguyên. Nó cũng có thể có ký tự đầu tiên là dấu trừ - hoặc dấu cộng + để biểu thị dấu của số.
  • radix: Quyết định chuỗi sẽ được chuyển sang cơ số nào.

Trong quá trình làm việc với hai biến thể trên, bạn cần lưu ý một số điểm để tránh xảy ra ngoại lệ:

  • Chuỗi là null hoặc có độ dài bằng 0.
  • Giá trị được đại diện bởi chuỗi không phải là giá trị của kiểu int
  • Cụ thể cho biến thể parseInt (String string, int radix):
+ Cơ số radix nhỏ hơn Character.MIN_RADIX hoặc lớn hơn Character.MAX_RADIX

+ Bất kỳ ký tự nào của chuỗi không phải là một chữ số của cơ số được chỉ định, ngoại trừ ký tự đầu tiên có thể là dấu trừ - hoặc dấu cộng + với điều kiện là chuỗi dài có chiều dài lớn hơn 1.

Nào, chúng ta hãy bắt đầu tìm hiểu về parseInt() trong Java thông qua một số ví dụ nhỏ.

Ví dụ 1: Thực hiện chuyển đổi chuỗi sang số như trong phần code bên dưới.



public class ParseIntExample {
  public static void main(String args[]) {
    int a = Integer.parseInt("99");
    int b = Integer.parseInt("+99");
    int c = Integer.parseInt("-99");
    
    // Chuyển sang cơ số 18
    int d = Integer.parseInt("99"18);

    // Chuyển sang cơ số 33
    int e = Integer.parseInt("ahihi"33);

    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
    System.out.println(d);
    System.out.println(e);
  }
}
 

Kết quả:


99
99
-99
171
12490320
 

Cũng trong ví dụ trên, bạn thử thay đổi các giá trị chuỗi ban đầu sang các định dạng khác để xem IDE có báo lỗi hay không?

> Nhân tiện đây, có thể bạn quan tâm: Top IDE Java tốt nhất

Nếu có, hãy đọc báo lỗi và quay lại phần lý thuyết bên trên để hiểu rõ tại sao nhé.


Và lưu ý, tham số radix quyết định chuỗi chuyển sang cơ số nào. Bạn có thể xem thêm giới thiệu danh sách cơ số trên Wiki.


Ví dụ 2: Chuyển đổi một chuỗi đầu vào không đúng định dạng chuỗi số.


Trường hợp này chúng ta có thể sử dụng try catch trong Java để hiện thị thông báo ra màn hình.


public class ParseIntWithTryCatch {
    public static void main(String[] args) {
        String number = "99AA";

        try {
            int result = Integer.parseInt(number);
            System.out.println(result);
        } catch (NumberFormatException e) {
            System.err.println("Không thể chuyển: " + number + " thành kiểu int");
        }

    }
}
 

Ví dụ 3: Cách chuyển đổi chuỗi sang số trong dự án thực tế


Trong ví dụ 2 có vẻ phần chuỗi đổi được nâng cấp một chút, nhưng nó chưa thật sự chuyên nghiệp và chưa đủ tầm với để ứng dụng vào dự án thực tế.

Để đạt tầm, hãy xem ví dụ sau:



public class BestParseInt {
    public static void main(String[] args) {
        String number = "379";
        if (isDigit(number)) {
            System.out.println(Integer.parseInt(number));
        } else {
            System.out.println("Vui lòng kiểm tra chuỗi hợp lệ [0-9]");
        }
    }

    public static boolean isDigit(String input) {
        // null hoặc length < 0 -> false.
        if (input == null || input.length() < 0)
            return false;
        // empty -> false
        input = input.trim();
        if ("".equals(input))
            return false;
        if (input.startsWith("-")) {
            // nếu là số âm thì cắt ký tự đầu tiên
            return input.substring(1).matches("[0-9]*");
        } else {
            // nếu là số dương cũng thực hiện kiểm tra qua
            return input.matches("[0-9]*");
        }
    }
}
 


Mình đã hướng dẫn các bạn sử dụng phương thức parseInt trong Java thông qua ba ví dụ từ cơ bản đến nâng cao.

Tuy nhiên nó chưa phải là tất cả, trong thực tế còn rất nhiều trường hợp phức tạp đòi hỏi sự vận dụng lắt léo hơn rất nhiều.

Trong Java, parseInt() không phải là phương thức duy nhất để chuyển đổi dữ liệu, tuỳ trường hợp mà ta có cách lựa chọn sao cho hợp lý nhất có thể.


3. Một số phương thức chuyển đổi dữ liệu khác


Như đã nói, parseInt() không phải là lựa chọn duy nhất.

Bởi trong Java còn nhiều phương thức chuyển đổi dữ liệu khác cũng mạnh mẽ và hiệu năng không hề kém.


  • valueOf(): Phương thức valueOf trong Java cũng phân tích cú pháp chuỗi như parseInt() nhưng trả về một đối tượng Integer.


public class ValueOf {
    public static void main(String args[]) {
        int a = Integer.valueOf("99");
        int b = Integer.valueOf("+99");
        int c = Integer.valueOf("-99");
        int d = Integer.valueOf("99"16);
        int e = Integer.valueOf("hanoi"29);

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
    }
}
 

Bạn kiểm tra xem kết quả có giống như ví dụ 1 không? Nhưng đừng hiểu lầm về kết quả đấy.

  • parseLong(String string): Phân tích cú pháp chuỗi số string và trả về số thập phân kiểu long.


public class ParseLong {
    public static void main(String[] args) {

        long a = Long.parseLong("1452");
        long b = Long.parseLong("26");
        long c = Long.parseLong("54");

        long m = a + b + c;
        System.out.print("Kết quả = " + m);
    }
}
 

  • parseDouble(String string): Chuyển từ String sang Double trong Java


public class ParseDouble {
    public static void main(String[] args) {
        String str = "100";
        double val = Double.parseDouble(str);
        System.out.println("Kết quả = " + val);
    }
}
 

Nhìn chung, việc chuyển đổi qua lại giữa hầu hết các kiểu dữ liệu đều đã được Java hỗ trợ sẵn các phương thức.

Vấn đề nằm ở chỗ nếu bạn không làm việc nhiều với việc chuyển đổi dữ liệu, không code nhiều cũng như không quen với việc fix-bug thường xuyên thì khó nắm vững các phương thức - từ chuyện phân biệt sự khác nhau giữa chúng đến việc sử dụng.

Các phương thức chuyển đổi này sẽ hỗ trợ đắc lực khi bạn muốn phân tích – bóc tách – kiểm tra – chuyển đổi chuỗi ở các dự án thực tế, vì thế đừng bỏ qua bất kỳ kiến thức cơ bản nào mà bạn cho là sẽ không dùng đến.

Hi vọng qua bài viết này bạn đã thực sự nắm rõ được phương thức parseInt trong Java để vận dụng nó trong tương lai.

> Bạn đang tìm hiểu về Java và muốn học Java chuyên nghiệp hơn, Nhanh hơn để đi làm sớm hơn? Tham gia ngay KHÓA HỌC LẬP TRÌNH JAVA tại NIIT - ICT Hà Nội để đạt mục tiêu tốt hơn bạn nhé!



Tham khảo: https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html

---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #python #java #php
Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!