【问题标题】:I need help comparing arrays with error checking in Java [closed]我需要帮助将数组与 Java 中的错误检查进行比较 [关闭]
【发布时间】:2020-10-25 16:18:34
【问题描述】:

我在这里查看了一堆以前类似的问题,但我尝试的任何方法似乎都无法修复我的程序。我正在研究一个用于学习 Java 的项目,而我正忙于这一节。

我需要比较两个字符数组,并进行错误检查,并打印一个枚举常量数组,该数组对应于第一个数组中的字符。我尝试过嵌套 for 循环,增强 for 循环,尝试将其设置为哈希集。我需要帮助。

第一个字符数组来自用户输入字符串:例如。用户输入“FFRL”,它被放入一个字符数组['F','F','R','L']。第二个字符数组来自分配的枚举值 FORWARD('F'), RIGHT('R'), LEFT('L') ['F', 'R', 'L']。如果给定无效输入,则抛出错误,例如 B。说明建议继续和/或中断。这是预期的测试结果:

  • 输入:FFRL
  • 输出:{FORWARD FORWARD RIGHT LEFT}
  • 输入:FFB
  • 输出:无效指令异常

该程序确实有一些预定义的方法,但是对于程序的循环部分,我还没有得到太多的使用。如果我没有清楚地说明,如果您更愿意查看代码或部分实际说明,请告诉我。

【问题讨论】:

  • 请向我们展示预定义的方法、您的工作和您当前的输出。

标签: java arrays enums


【解决方案1】:

如果我理解正确,这就是你要找的:

枚举类:

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 !");
    }
}

【讨论】:

  • 非常感谢!查看您提供的内容确实帮助我组织了我的代码。我开始让它变得过于复杂。感谢您帮助我们更好地了解如何使用增强的 for 循环以及在本例中使用布尔值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-12
  • 1970-01-01
相关资源
最近更新 更多