如何解决如何检查java中的int范围并将其限制为5位数字
|| 请帮忙我的作业。这是问题: 创建一个单独的测试驱动程序类 称为TestEmployeePayroll,它将 通过以下方式测试EmployeePayroll类 执行以下操作: 提示用户输入 员工的身份证号码,名字,姓氏 名称,工资类别和工作时间 (一次一个)。 员工编号的用户条目 数字必须正好是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();
}
}
解决方法
您可以计算一个字符串的长度,然后将其转换为数字,Oli Charlesworth告诉您如何转换它,或者您可以测量数字。这取决于您想要什么。 012345是有效的ID吗?它是6个字符的字符串,但小于最大的5位数字。
, 您可能需要使用
Integer.parseInt()
。
, 我想你几乎明白了...
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 ---\");
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。