java - 使用 Java 字符和字符串验证用户输入

标签 java string chars

我已经看到这个问题询问了 2 次,但我需要的正确响应尚未得到解决。

在本次评估中, 您将设计并编写一个 Java 控制台应用程序 验证数据 入口 类(class)代码(如 IT4782) 和 报告 回来如果 类(class)代码有效或 不是 有效的。 这 应用 使用 Java 字符 和 要实现的字符串数据类型 验证。 你 能 使用 任何一个 这 工具线环境 或你的 本地的 java 发展 环境 来完成这个 作业。

要求 这个应用程序是 如下: 该应用程序是阅读 类(class)代码 进入 由用户 来自 键盘。 类(class)代码 被制作 5 个字符并且应该 跟随 这些

规则:

  • 第一 特点 总是 一个 上 案例一 或更低 案例一
  • 第二个字符 始终是上层 案件 或 较低的 案例t
  • 第三, 第四, 第五, 和第六个字符 始终是数字 (0- 9) 然后应用程序验证类(class)代码 高于规则并打印 消息

如果 科目编号 已验证 或不。 如果类(class)代码不是 有效的, 申请表应打印 一个消息 解释为什么 类(class) 代码不是 有效。

输出应如下所示: Output should look like this

这是我的代码,我无法获得生成如图所示结果的代码。它输出所有无效消息。

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;
        }
    }
}

最佳答案

  1. 当您返回 false; 后的代码不会执行,因此您永远不会知道它返回的原因
  2. 如果您仅返回 false,则测试将永远不会通过,您需要一个变量来验证 code
  3. 如果它出现在一个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/

相关文章:

java - Objects.equals 和 Object.equals

python - 如何在 Python 中使用 [] 拆分字符串

sql-server - SQL Server : Replace characters different than a char in a string using no temporary table

线程之间的 Java 同步列表。最佳实践

java - drawString 未正确写入字符串

c - ANSI-C : maximum number of characters printing a decimal int

javascript - 我的变量为什么返回空?

c - 使用 UDP 发送字符

java - "[Microsoft][ODBC Driver Manager] Invalid string or buffer length"错误