使用for循环创建字符串数组,返回空数组

时间:2018-11-18 22:30:08

标签: java arrays string

我正在尝试创建一个可分解单词的hashkey maker,并将其字母与每个索引中带有字母的数组进行比较。当它们相等时,它将采用该字母的位置,并将其插入另一个数组(如果前9个单元格中的前面为0)。我不断得到一个空数组。如果有人可以指出正确的方向,那将是很好的。

如果程序设计很丑陋,我也要道歉,但是我会接受教授喜欢的其他格式建议。

我的第一次尝试:`

public String key(String word){
    final char[] alphArray="abcdefghijklmnopqrstuvwxyz".toCharArray();
    String Key; String Value;
    int alphLength=alphArray.length;
    String wordNoSpace=word.replaceAll("\\s","");
    char[] wordArray= wordNoSpace.toCharArray();
    int wordLength=wordArray.length;
    String[] keyArray = null;               
    String tmp; String formattedTmp;               
         for (int i=0; i > wordLength; i++)
          {
            for(int j=0; j >alphLength; j++)
            {
             if (wordArray[i]== alphArray[j])
             {
              tmp=Integer.toString(j);
              formattedTmp=String.format("%02d",tmp);
              keyArray[i]=formattedTmp;
             }             
            }
          }
        Key=Arrays.toString(keyArray);
        return Key;
        }
}

再次,我们将不胜感激!

编辑:根据某人的建议,我的预期输入/输出为“ 输入:苹果 输出:0116162518

目前我正在获取:[null,null,null,null]

编辑2:取消了第二次尝试,因为第一次尝试是我花费最多时间的尝试

1 个答案:

答案 0 :(得分:-1)

我还没有查看所有 您的代码,但这是两个明显的错误:

for (int i=0; i > wordLength; i++) {
    for (int j=0; j > alphLength; j++)

除非wordLengthalphLength为负数,否则这些循环将永远不会重复,因为条件始终为false

尝试将>更改为<

for (int i=0; i < wordLength; i++) {
    for (int j=0; j < alphLength; j++)

如果您使用调试器,您会很快发现这一点。我建议您学习如何尽快使用调试器。