gpt4 book ai didi

java - 如何使用 Character Class 检查用户提示的 SSN 是否有效?

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:48 24 4
gpt4 key购买 nike

我是计算机科学的新手,我的作业要求我使用字符类创建一个静态 boolean 方法来验证用户是否输入了 SSN。可接受的格式只有 XXXXXXXXX 或 XXX-XX-XXXX。我知道我应该使用 Character.isDigit() 或 charAtString 但我已经尝试过它们但它不起作用。

如果这是一个愚蠢的问题,我很抱歉,非常感谢您的指导。

谢谢,

布兰登

import java.util.Scanner; // INPUTS SCANNER

public class SSNValidator {
public static boolean isValidSSN(String ssn) {

}

public static void main(String[]args){

Scanner input = new Scanner(System.in);
String programState = "running";

do {
System.out.println("Enter a SSN(Quit/quit to exit):\n");
} while ((!programState.equals("yes")) && (!programState.equals("Yes")));
System.out.println("Exiting Program.\n");
}

最佳答案

我建议您使用以下算法:

  1. 如果字符串输入的大小为 9 - 在循环所有字符并确认 (isDigit()) 它们是数字后返回 true。 (这是 XXXXXXXXX 的第一个用例)。
  2. 否则,如果输入字符串的大小为 11,并且第 3 位和第 6 位的字符为 '-' - 在循环所有剩余字符并确认 (isDigit()) 它们是数字后返回 true。 (这是 XXX-XX-XXXX 的第二个用例)。循环时,您应该跳过第 3 和第 6 个位置的 isDigit() 检查。
  3. 否则返回false(不符合用例)。

如前所述 Davy M - 解决方案的核心是 isDigit 检查的循环。这个片段应该是关于如何做到这一点的一个很好的引用:

String str = "lmn67up94h";
for(char c : str.toCharArray()) {
if(Character.isDigit(c)) {
System.out.println("Got digit : " + c);
}
}

输出是:

Got digit : 6
Got digit : 7
Got digit : 9
Got digit : 4

关于java - 如何使用 Character Class 检查用户提示的 SSN 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49992985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com