Kiểm tra định dạng số nguyên dương trong Java



Đề bài: Xây dựng lớp UnsignedIntegerException dùng để biểu diễn lỗi định dạng số nguyên dương không hợp lệ. Viết chương trình nhập một chuỗi từ bàn phím, kiểm tra nếu chuỗi không đúng định dạng số nguyên dương thì hiển thị thông báo lỗi.
Yêu cầu kiến thức:

  • Kiến thức về lớp con kế thừa lớp cha. Ở đây tôi sẽ thiết kế thông báo lỗi bằng cách xây dựng 1 lớp sinh ra thông báo lỗi, lớp này được kế thừa từ lớp Exception.
  • Xác định kiểu dữ liệu cho các hàm và các biến cần sử dụng.
  • Kiến thức về biểu thức chính quy (Regular Expression).

Cấu trúc thư mục:
src
|——UnsignedIntExcep
   |——UnsignedIntegerException.java
|——Checking
   |——NumberChecking.java
|——Using
   |——MainClass.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File UnsignedIntegerException.java:


package UnsignedIntExcep;

public class UnsignedIntegerException extends Exception {
    // Ham khoi tao
    public UnsignedIntegerException(String str) {
        super(str);
    }
}

File NumberChecking.java:


package Checking;

import UnsignedIntExcep.UnsignedIntegerException;

public class NumberChecking {
    // Ham kiem tra dinh dang so
    public void numberCheck(String str) throws UnsignedIntegerException {
        // Tao bieu thuc chinh quy de dinh dang so nguyen
        String reg = "^\\d+$"; // Minh xet dang don gian

        // Dung reg de phan tich cau truc cua str truyen vao
        boolean kt = str.matches(reg);

        if (kt == false) {
            throw new UnsignedIntegerException("Dinh dang chuoi so nguyen duong khong hop le!");
        } else {
            System.out.println("Dinh dang chuoi so nguyen duong hop le!");
        }
    }
}

File MainClass.java:


package Using;

import Checking.NumberChecking;
import UnsignedIntExcep.UnsignedIntegerException;

import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        // Khai cao doi tuong
        NumberChecking check=new NumberChecking();

        // Nhap du lieu
        System.out.print("Nhap vao chuoi so nguyen duong: ");
        String str=sc.nextLine();

        // Kiem tra dinh dang
        try {
            check.numberCheck(str);
        } catch (UnsignedIntegerException e) {
            System.out.println(e.getMessage());
        }

        sc.close();
    }
}


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình Java từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Ôn tập OOP cơ bản trong Java. Xem tại đây

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese