Chương trình Java để kiểm tra xem một chuỗi có phải là số không

Trong chương trình này, bạn sẽ học các kỹ thuật khác nhau để kiểm tra xem một chuỗi có phải là số hay không trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Chuỗi Java
  • Xử lý ngoại lệ trong Java

Ví dụ 1: Kiểm tra xem một chuỗi có phải là số không

 public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Đầu ra

 12345.15 là một số

Trong chương trình trên, chúng ta có một Stringchuỗi được đặt tên chứa chuỗi cần kiểm tra. Chúng tôi cũng có một số giá trị boolean lưu trữ nếu kết quả cuối cùng là số hay không.

Để kiểm tra xem chuỗi chỉ chứa số hay không, trong khối try, chúng tôi sử dụng phương thức Double's parseDouble()để chuyển chuỗi thành a Double.

Nếu nó xuất hiện một lỗi (tức là NumberFormatExceptionlỗi), điều đó có nghĩa là chuỗi không phải là một số và số được đặt thành false. Khác, đó là một con số.

Tuy nhiên, nếu bạn muốn kiểm tra xem đối với một số chuỗi, bạn cần phải thay đổi nó thành một hàm. Và, logic dựa trên việc ném ra các ngoại lệ, điều này có thể khá tốn kém.

Thay vào đó, chúng ta có thể sử dụng sức mạnh của biểu thức chính quy để kiểm tra xem chuỗi có phải là số hay không như hình dưới đây.

Ví dụ 2: Kiểm tra xem một chuỗi có phải là số hay không sử dụng biểu thức chính quy (regex)

 public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Đầu ra

 -1234.15 là một số

Trong chương trình trên, thay vì sử dụng khối try-catch, chúng ta sử dụng regex để kiểm tra xem chuỗi có phải là số hay không. Điều này được thực hiện bằng cách sử dụng matches()phương thức của String .

Trong matches()phương pháp,

  • -?cho phép không hoặc nhiều hơn -đối với các số âm trong chuỗi.
  • \d+kiểm tra chuỗi phải có ít nhất 1 hoặc nhiều số ( \d).
  • (\.\d+)?cho phép không hoặc nhiều mẫu nhất định (\.\d+)trong đó
    • \.kiểm tra xem chuỗi có chứa .(dấu thập phân) hay không
    • Nếu có, nó phải được theo sau bởi ít nhất một hoặc nhiều số \d+.

thú vị bài viết...