如何解决我需要帮助比较数组和Java中的错误检查
我在这里查看了一堆以前类似的问题,但我尝试过的任何事情似乎都无法修复我的程序。我正在从事一个用于学习Java的项目,并且在这一节中挂了电话。
我需要比较两个带有错误检查的char数组,并打印一个与第一个数组中的char对应的枚举常量数组。我尝试做一个嵌套的for循环,增强了for循环,尝试将其设置为哈希集。我需要帮助。
第一个字符数组来自用户输入字符串:ex。用户输入“ FFRL”,它将被放入一个char数组['F','F','R','L']。第二个字符数组来自分配的枚举值FORWARD('F'),RIGHT('R'),LEFT('L')['F','R','L']。如果输入无效,则引发错误,例如B。指令建议继续和/或中断。这是预期的测试结果:
- 输入:FFRL
- 输出:{FORWARD FORWARD RIGHT LEFT}
- 输入:FFB
- 输出:无效的指令异常
该程序确实有一些预定义的方法,但是对于程序的循环部分,我还没有得到太多使用。如果我没有清楚地说明这一点,请告诉我您是否希望看到代码或实际说明的一部分。
解决方法
如果我正确理解,这就是您想要的:
枚举类别:
public enum Enum {
FORWARD('F'),RIGHT('R'),LEFT('L');
private Enum(char letter) {
this.letter = letter;
}
private char letter;
public char getLetter() {
return letter;
}
}
方法:
public static Enum[] method(char[] input) throws InstructionException {
Enum[] output = new Enum[input.length];
for (int i = 0; i < input.length; i++) {
boolean found = false;
for (Enum e : Enum.values()) {
if (e.getLetter() == input[i]) {
output[i] = e;
found = true;
break;
}
}
if (!found) {
throw new InstructionException();
}
}
return output;
}
主要:
public static void main(String[] args) {
char[] input = {'F','F','R'};
try {
Enum[] output = method(input);
for (Enum e : output) {
System.out.println(e);
}
} catch (InstructionException e) {
System.out.println("ERROR !");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。