首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java验证字符串/双值的初学者方法

用Java验证字符串/双值的初学者方法
EN

Stack Overflow用户
提问于 2019-10-20 23:21:40
回答 1查看 157关注 0票数 1

我在第七周的“Java编程入门”课程中。第五周的任务是:“编写一个程序,提示用户输入DDDD格式的社会保险号码,其中D是一个数字(0-9)。您的程序应该检查输入是否有效。”

我最初没有提交任何东西,因为这本书(YDaniel梁的“Java编程入门”)和我的导师在讨论将双字符串转换为字符串和验证它们的格式时没有真正的意义。

我希望YouTube、谷歌或其他一些来源能帮助我解决这个问题;然而,解决方案包括"Regex“和其他我们尚未接近讨论的实用程序。我会得到一个F的任何东西,我无法复制和解释星期二,所以真正深入,老练的解决方案是不可能在这里。

有什么建议可以让我快速赶上简单验证/字符串转换的速度吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-21 04:45:49

您可以使用for循环和几个if语句来完成这一任务(很长一段时间)。您肯定希望在Character.isDigit()语句条件下在中使用方法。

您需要一次迭代由用户提供的SSN字符串,因此在这里使用String.charAt()方法也很重要。这里有一种方法,你可以这样做:

代码语言:javascript
复制
Scanner input = new Scanner(System.in);
String inputSSN = "";

while (inputSSN.equals("")) {
    System.out.print("Enter a Social Security Number: --> ");
    inputSSN = input.nextLine();

    // Validate SSN...
    for (int i = 0; i < inputSSN.length(); i++) {
        // Validate the first set of 3 digits
        if (i >= 0 && i <= 2) {
            if (!Character.isDigit(inputSSN.charAt(i))) {
                inputSSN = "";
                break;
            }
            continue;
        }

        // Validate the first hyphen
        if (i == 3 && inputSSN.charAt(i) != '-') {
            inputSSN = "";
            break;
        }

        // Validate the second set of 2 digits
        if (i >= 4 && i <= 5) {
            if (!Character.isDigit(inputSSN.charAt(i))) {
                inputSSN = "";
                break;
            }
            continue;
        }

        // Validate the second hyphen
        if (i == 6 && inputSSN.charAt(i) != '-') {
            inputSSN = "";
            break;
        }

        // Validate the third set of 4 digits
        if (i >= 7 && i <= 10) {
            if (!Character.isDigit(inputSSN.charAt(i))) {
                inputSSN = "";
                break;
            }
        }
    }

    // Validate that the SSN is the right length
    if (inputSSN.length() != 11) {
        System.out.println("Invalid Social Security Number!" + System.lineSeparator());
        inputSSN = "";
    }
}

System.out.println(inputSSN + " is a valid Social Security Number.");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58478092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档