我正在尝试创建一个可分解单词的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:取消了第二次尝试,因为第一次尝试是我花费最多时间的尝试
答案 0 :(得分:-1)
我还没有查看所有 您的代码,但这是两个明显的错误:
for (int i=0; i > wordLength; i++) {
for (int j=0; j > alphLength; j++)
除非wordLength
和alphLength
为负数,否则这些循环将永远不会重复,因为条件始终为false
。
尝试将>
更改为<
:
for (int i=0; i < wordLength; i++) {
for (int j=0; j < alphLength; j++)
如果您使用调试器,您会很快发现这一点。我建议您学习如何尽快使用调试器。