错误:线程“ main”中的异常java.lang.ArrayIndexOutOfBoundsException:Main.main(Main.java:16)的索引1超出长度1的范围

时间:2020-05-07 08:49:03

标签: java

我是Java初学者。我的代码是转换从键盘输入的莫尔斯电码,并输出为有​​意义的字符。这只是3个字母的“ A”,“ B”,“ C”测试,但是运行时出现错误。 请帮帮我 !

import java.util.*;
import java.io.*;

 public class Main {
 public static void main (String[] args) {
    String [][] Morse = new String[60][2];

        Morse[0][0] = "A" ; Morse[0][1] = ".-" ; 
        Morse[1][0] = "B" ; Morse[1][1] = "-...";
        Morse[2][0] = "C" ; Morse[2][1] = "-.-.";

    Scanner ip = new Scanner(System.in);
    String s = ip.nextLine();
    String [] op = s.split(" ");
    for (int i = 0 ; i <  60 ; i++) 
        if ( op[i] == Morse[i][1] ) System.out.print(" "+Morse[i][0]);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用称为HashMap的数据结构,检查以下代码

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Sol {
    public static void main(String[] args) {
        Map<String, String> morseToText = new HashMap<>();
        morseToText.put(".-", "A");
        morseToText.put("-...", "B");
        morseToText.put("-.-.", "C");

        Scanner ip = new Scanner(System.in);
        String s = ip.nextLine();
        String[] op = s.split(" ");
        for (String s1 : op) {
            System.out.print(morseToText.get(s1));
        }
    }
}