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() 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à:
-
và
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