簡體   English   中英

Java數組輸出中的間距

[英]Spacing in java array output

我的代碼有問題。 我被要求使用包含莫爾斯電碼和類似值的txt創建一個並行數組。 例如:A .- B -...等...

這是我的錯誤所在-

public class Translate
{
String input;
String code[];
String alphabet[];

public Translate(String input)
{
    this.input = input;
}

public void setInput(String input)
{
    this.input = input;
}

public void setAlph(String[] alphabet)
{
    this.alphabet = alphabet;
}

public void setCode(String[] code)
{
    this.code = code;
}

public String getInput()
{
    return input;
}

public String getTranslate()
{
    String output = "";
    for(int i = 0; i < input.length(); i++)
    {
        for(int index = 0; index < alphabet.length; index++)
        {
            if(input.charAt(i) == alphabet[index].charAt(0)
            {
                output = output + code[index];
            }
        }
    }
return output;
}
}

線程“主”中的異常java.lang.ArrayIndexOutOfBoundsException:36

我通常不尋求幫助,但是我已經花了幾個小時了。 我可以看到將input.charAt與Alphabet(string)進行比較的唯一方法是將字符串解析為char或在末尾添加.charAt。 我已經嘗試過執行Alphabet [index] .charAt(index)),但這也不起作用。 它只用1而不是36給了我相同的錯誤

UPD我收到錯誤“線程“主”中的異常,位於Translate.getTranslate(Translate.java:39)的java.lang.NullPointerException”

UPD不再收到錯誤。 但是,我對下一個任務感到困惑。 我需要在更多代碼字母之間添加一個空格,在單詞之間添加3個空格。 例如:如果用戶輸入“ Hey”,則輸出應為“ ..... -.--”,而Im則接收“ .....-.--”

提前致謝。

看來您的問題是for(int index = 0; index <= alphabet.length; index++) -您一直在遞增index直到它等於字母表的長度,這會使它超出最終值,從而給您得到。 您應該將其設置為index < alphabet.length來避免這種情況。

您沒有顯示所有變量聲明和示例輸入,因此以下內容基於我對它們的猜測。

  1. 看起來很奇怪的是“ <=”,應該是“ <”

    for(int索引= 0;索引<= Alphabet.length;索引++)

  2. 您不應該每次都遍歷字母,而應事先准備映射。 這樣會更有效率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM