我正在做一个学校JAVA项目,其中我要求用户输入一个8位数字字符串,最后加上一个字母,我必须验证:
- 我收到的是这 8 位数字,而不是字母
- 最后一个字母必须包含在给定的 char [ ] 列表中。
我将在此处粘贴给定的列表和位置
- 最后也是最棘手的事情 - 字母必须是输入的数字除以 23(字符总数)才有效。 例如,如果用户输入 00000102X,则唯一有效的字母必须是 X。(102%23=10) 如果用户输入 24659213Q,则字母必须为 Q (24659213%23=16)。
我不太确定从哪里开始......所以到目前为止我唯一完成的事情是:
import java.util.Scanner;
public class Practice {
static final char[] LETTERS = {'T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X'
,'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C'
, 'K', 'E'};
String [][] input;
public static void main (String[] args){
Scanner scanner = new Scanner (System.in);
System.out.print("Please input: ");
}
}
知道如何开始吗?任何帮助都将被欣然接受。谢谢!
我需要做的是:
- 要求用户输入 8 位数字和一个字母
- 验证输入的组成(8 位数字+1 个字母)
- 将数字作为数字除以 23。结果应指向 char [ ] 列表中接受的字母
- 如果一切正常,保存并返回步骤1。如果不正常,则给出错误并要求用户重新输入。
最佳答案
我会给你一些设计思想而不是代码,以便你可以自己编写:
考虑如何存储用户输入(例如,它是一个
char
列表,也许是一个String
?) - 这取决于您的内容使用起来更舒服,但我推荐使用String
您需要什么方法?如果您将任务分解为许多不同的检查,您可能需要
首先检查字符串的长度(你可以为此编写一个方法,但它只有一行代码,所以我不推荐这样做),
然后检查除最后一个字符之外的所有字符都是数字,并且最后一个字符是
String
(您可以获得由第一个字符表示的substring
) 7个字符并尝试解析出一个Integer
,然后你可以检查最后一个字符是否是一个字母(类中有内置方法字符
用于检查这一点,并在String
类中用于处理String
的不同部分)那么也许有一种不同的方法来检查前 7 个字符模 23 表示的数字是否是给定
char[]
中最后一个字母的索引> 数组当你拥有所有检查方法时(我认为你应该简单地
assert
每个方法应该在其主体内部检查什么,例如assert(input.length == 8 )
或抛出
自定义或内置Exception
以防万一检查失败)您可以简单地将它们链接起来(即一个接一个地调用它们)你的主要方法
祝你好运!
关于java - 请求用户输入并验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552405/