java - 在 Java 中验证字符串/双精度的初学者方法
问题描述
我在“Java 编程入门”课程的第 7 周。第 5 周的作业是:“编写一个程序,提示用户以 DDD-DD-DDDD 格式输入社会安全号码,其中 D 是数字 (0-9)。您的程序应检查输入是否有效。”
由于这本书(Y Daniel Liang 的“Java 编程简介”)和我的导师在讨论将双精度数转换为字符串并验证它们的格式时,我最初没有提交任何内容。
我希望 YouTube、Google 或其他来源能帮助我解决这个问题;但是,解决方案包括“Regex”和我们尚未接近讨论的其他实用程序。对于我无法复制和解释的任何事情,我都会在星期二得到一个 F,所以在这里,非常深入、经验丰富的解决方案是不可能的。
关于如何快速赶上简单的字符串验证/转换速度的任何建议?
解决方案
您可以使用for循环和几个if语句来做到这一点(很长的路要走)。您肯定希望在if语句条件中使用Character.isDigit()方法。
您需要一次一个字符地遍历用户提供的 SSN 字符串,因此使用String.charAt()方法在这里也很重要。这是您可能采取的一种方法:
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.");
推荐阅读
- javascript - 在 Laravel-8 中使用 ajax 请求和 sweet alert2 删除项目
- javascript - 无ID访问iframe src
- tree - 如果我已登录,MediaWiki 中的 CategoryTree 扩展将不会更新
- angular - TypeError:无法在“FormData”上执行“附加”:参数 2 不是“Blob”类型
- sql-server - 如何在 SQL Server 中使用强制转换和切换函数编写查询?
- postgresql - 在 xml bean 中将会话变量添加到实体管理器工厂以在 Postgres 数据库中访问它
- android-recyclerview - 如何使用 FirestoreRecyclerAdapter 使用不同的布局(左右)进行聊天
- generics - Rust:为不同类型(基元和其他)实现泛型方法
- reactjs - 将反应表对齐到页面中心
- ansible - 从列表中为 Ansible 中的每个哈希条目生成哈希列表