首页 > 解决方案 > 使用 for 循环返回空数组创建字符串数组

问题描述

我正在尝试创建一个分解单词的哈希键生成器,并将其字母与每个索引中的字母表的字母进行比较。当它们相等时,它会采用该字母的位置并将其插入另一个数组中,如果它在前 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:删除了我的第二次尝试,因为第一次是我花费最多时间的一次

标签: javaarraysstring

解决方案


I haven't looked at all your code, but here are two obvious bugs:

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

unless wordLength and alphLength are negative numbers, these loops will never iterate, because the condition will be always false.

Try changing > to <:

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

You would have discovered this very quickly yourself had you used a debugger. I recommend you learn how to use a debugger asap.


推荐阅读