簡體   English   中英

如何檢查java中的int范圍並將其限制為僅5位數字

[英]how to check the int range in java and limit it only 5digits

請幫忙我的作業。 這是問題:

創建一個單獨的名為TestEmployeePayroll的測試驅動程序類,該類將通過執行以下操作來測試EmployeePayroll類:

提示用戶輸入員工的ID號,名字,姓氏,工資類別和工作時間(一次)。

  • 員工ID號的用戶輸入必須正好是5位數字。
  • 僅當類別在1到4范圍內時,才可接受用戶輸入。
  • 只有在1到80的范圍內,才能接受“工作小時數”的用戶輸入。

這是我到目前為止所做的:

import java.util.Scanner;
public class TestEmployeePayRoll {

    public static void main(String[] args){
        EmployeePayRoll obj1 = new EmployeePayRoll();

        Scanner input = new Scanner(System.in);
        System.out.println("Enter the Employee ID number: "+ " ");
        String EmployeeID = input.nextLine();

        //How to check the range here if int is 5 digits long or not ?

        System.out.println("Enter the first Name: "+ " ");
        String FirstName =  input.nextLine();

        System.out.println("Enter Last Name: "+ " ");
        String LastName = input.nextLine();

        System.out.println("Enter the Pay Category: "+ " ");
        double PayCategory = input.nextDouble();

        System.out.println("Enter the number of hours worked: "+ " ");
        double HoursWorked = input.nextDouble();
    }
}

您可能要使用Integer.parseInt()

您可以計算一個字符串的長度,然后將其轉換為數字, Oli Charlesworth告訴您如何轉換,也可以測量數字。 這取決於您想要什么。 012345是有效的ID嗎? 這是一個6個字符的字符串,但小於最大的5位數字。

我想你幾乎明白了...

import java.util.Scanner;
public class TestEmployeePayRoll {

    public static void main(String[] args){
        // ... get the values, as you are doing already
        // validate input
        int employeeIdAsInteger = validateAndConvertEmployeeId(EmployeeId);
        int payCategoryAsInteger = validateAndConvertPayCategory(PayCategory);
        // ... and so on
    }

    private int validateAndConvertEmployeeId(String employeeId) {
        // The user entry for employees ID number must be exactly 5 digits long.
        if (employeeId == null || employeeId.trim().length() != 5) {
            throw new IllegalArgumentException("employee id must be exactly 5 digits long");
        }
        // will throw an exception if not a number...
        return Integer.parseInt(employeeId);
    }
    // ...
}

根據您的目標和約束,您可以查看Pattern類並使用正則表達式。

您可以檢查這種情況。

import java.util.Scanner;

public class TestEmployeePayRoll {

    public static void main(String[] args) {
        TestEmployeePayRoll obj1 = new TestEmployeePayRoll();

        Scanner input = new Scanner(System.in);
        System.out.println("Enter the Employee ID number: " + " ");
        String EmployeeID = input.nextLine();

        if (EmployeeID.trim().length() != 5) {
            System.out.println("--- Enter valid Employee ID number ---");
        }
        System.out.println("Enter the first Name: " + " ");
        String FirstName = input.nextLine();

        System.out.println("Enter Last Name: " + " ");
        String LastName = input.nextLine();

        System.out.println("Enter the Pay Category: " + " ");

        double PayCategory = input.nextDouble();

        Double pay = new Double(PayCategory);

        if (pay.isNaN()) {
            System.out.println("***** Enter a valid Pay Category *****");
        }
        if (!(PayCategory >= 0 && PayCategory <= 5)) {
            System.out.println(" --- PayCategory must be between 0 and 5");
        }

        System.out.println("Enter the number of hours worked: " + " ");

        double HoursWorked = input.nextDouble();

        Double hours = new Double(HoursWorked);

        if (hours.isNaN()) {
            System.out.println("--- Enter a valid hours value ----");
        } else {
            if (!(HoursWorked >= 1 && HoursWorked <= 80)) {
                System.out.println("--- Enter value between 1 and 80 ---");
            }
        }
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM