java - 使用 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:删除了我的第二次尝试,因为第一次是我花费最多时间的一次
解决方案
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.
推荐阅读
- excel - 选择超链接目标单元格的整行并向左滚动目标单元格
- aws-amplify - 从分叉分支构建的 AWS Ampify 控制台预览版
- postgresql - 如何使用 pgAdmin 从 .pg_dump 文件中恢复数据库
- apache-spark - 在笔记本上使用 pyspark 从表中删除行
- javascript - 在循环中,使所有其他值除了匹配条件的值被赋予样式
- java - 当我导入 JPA 注释并仅使用单个休眠属性时,我是否在用例中处理 JPA 或休眠?
- api - 处理 ErrorException (E_NOTICE) 未定义的偏移量:0
- java - 如何通过 Gradle 7.0+ 制作具有依赖关系的 Jar 文件?
- ios - 如何在页脚中使用 segue 将标签数据传递到不同的部分?
- github - 将 slack 与 github 集成以获取推送到特定分支的通知