我已经看到这个问题询问了 2 次,但我需要的正确响应尚未得到解决。
在本次评估中, 您将设计并编写一个 Java 控制台应用程序 验证数据 入口 类(class)代码(如 IT4782) 和 报告 回来如果 类(class)代码有效或 不是 有效的。 这 应用 使用 Java 字符 和 要实现的字符串数据类型 验证。 你 能 使用 任何一个 这 工具线环境 或你的 本地的 java 发展 环境 来完成这个 作业。
要求 这个应用程序是 如下: 该应用程序是阅读 类(class)代码 进入 由用户 来自 键盘。 类(class)代码 被制作 5 个字符并且应该 跟随 这些
规则:
- 第一 特点 总是 一个 上 案例一 或更低 案例一
- 第二个字符 始终是上层 案件 或 较低的 案例t
- 第三, 第四, 第五, 和第六个字符 始终是数字 (0- 9) 然后应用程序验证类(class)代码 高于规则并打印 消息
如果 科目编号 已验证 或不。 如果类(class)代码不是 有效的, 申请表应打印 一个消息 解释为什么 类(class) 代码不是 有效。
输出应如下所示:
这是我的代码,我无法获得生成如图所示结果的代码。它输出所有无效消息。
package u4a1_validatecoursecode;
import java.util.Scanner;
public class U4A1_ValidateCourseCode {
public static void main(String[] args) {
// Larry Copy
Scanner s = new Scanner(System.in);
System.out.print("Enter a course code to validate (e.g. IT4782) : ");
String code = s.nextLine();
if (validateCode(code)) {
System.out.println("Course code: " + "" + code + "" + " is valid.");
} else {
System.out.println("Not valid code");
}
}
private static boolean validateCode(String code) {
if (code.length() != 6) {
return false;
} else {
//First character is always an upper case I or a lower case i
if (code.charAt(0) != 'I' && code.charAt(0) != 'i') {
return false;
}
System.out.println("integer is not an I or i");
// Second character is always an upper case T or a lower case t
if (code.charAt(1) != 'T' && code.charAt(1) != 't') {
return false;
}
System.out.println("integer is not a T or t");
// Third, fourth, fifth, and sixth characters are always digits (0-9)
if (!Character.isDigit(code.charAt(2))) {
return false;
}
System.out.println("integer 3 is not a number");
if (!Character.isDigit(code.charAt(3))) {
return false;
}
System.out.println("integer 4 is not a number");
if (!Character.isDigit(code.charAt(4))) {
return false;
}
System.out.println("integer 5 is not a number");
if (!Character.isDigit(code.charAt(5))) {
return false;
}
System.out.println("integer 6 is not a number");
return false;
}
}
}
最佳答案
- 当您
返回 false;
后的代码不会执行,因此您永远不会知道它返回的原因 - 如果您仅返回
false
,则测试将永远不会通过,您需要一个变量来验证code
- 如果它出现在一个
if
(无效)中,您将收到该消息,并且valid
将为false
private static boolean validateCode(String code) {
if (code.length() != 6) {
return false;
} else {
boolean valid = true;
//First character is always an upper case I or a lower case i
if (code.charAt(0) != 'I' && code.charAt(0) != 'i') {
System.out.println("integer is not an I or i");
valid = false;
}
// Second character is always an upper case T or a lower case t
if (code.charAt(1) != 'T' && code.charAt(1) != 't') {
System.out.println("integer is not a T or t");
valid = false;
}
// Third, fourth, fifth, and sixth characters are always digits (0-9)
if (!Character.isDigit(code.charAt(2))) {
System.out.println("integer 3 is not a number");
valid = false;
}
if (!Character.isDigit(code.charAt(3))) {
System.out.println("integer 4 is not a number");
valid = false;
}
if (!Character.isDigit(code.charAt(4))) {
System.out.println("integer 5 is not a number");
valid = false;
}
if (!Character.isDigit(code.charAt(5))) {
System.out.println("integer 6 is not a number");
valid = false;
}
return valid;
}
}
关于java - 使用 Java 字符和字符串验证用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50273202/