Java 索引读取不正确
代码在第一个数组位置(0)添加一个空格,并在第二个位置(1)开始单词。因此,单词的最后一个字母会被截断,因为数组的长度由单词长度本身决定 输入字是Java 索引读取不正确,java,arrays,indices,Java,Arrays,Indices,代码在第一个数组位置(0)添加一个空格,并在第二个位置(1)开始单词。因此,单词的最后一个字母会被截断,因为数组的长度由单词长度本身决定 输入字是“hummu”,但输出是“hummu”(注意前导空格) 我的代码(上面在代码的不同部分声明了一些变量): //在单词列表中读取 for(int x=0;x
“hummu”
,但输出是“hummu”
(注意前导空格)
我的代码(上面在代码的不同部分声明了一些变量):
//在单词列表中读取
for(int x=0;x
这应该很容易通过调试器逐步完成。我目前使用的计算机上没有Java设置,但我很确定您的问题在于这一行:
String[] letters = word.split("");
我认为这将在两端增加一个额外的空间
这是一种将字符串
拆分为字母的非常奇怪的方法;为什么不直接使用tocharray
并将每个char
转换为字符串
作为旁注,你到底期望什么
for (int x = 0; x < wordList.length; x++) {
word = wordList[x];
}
for(int x=0;x
要做什么?永远不要将空字符串传递给split。如@MattPutnam所说,使用获取数组的单个字符。您可以在需要时使用static
Character.toString
方法将char
转换回String
字符串的。使用“”
拆分,因为正则表达式匹配任何内容。。。这条规则的要点是:
如果在输入序列的开头有正宽度匹配,则在结果数组的开头包含一个空的前导子字符串
由于“”与字符串的第一个字母匹配,
字母[0]
被设置为空字符串。此外,我可能应该返回并注意,“匹配所有内容”实际上是指项目之间的字符分隔符。
for (int x = 0; x < wordList.length; x++) {
word = wordList[x];
}