此代码是将单词添加到基数树的方法的一部分。如果我用参数[例如addWord("food",node(]中的单词调用这个方法,它会在char character = word.charAt(0);
行抛出一个StringIndexOutOfBoundsException
。我很难弄清楚为什么会这样。我试过更改数字,但仍然得到了同样的结果。
private void addWord(String word, RadixNode node)
{
RadixNode childNode;
word = word.toLowerCase();
do
{
char character = word.charAt(0);
最可能的原因是您的Stringword
为空。
你应该在之前检查是否为空
private void addWord(String word, RadixNode node) {
if (word.isEmpty()) {
// do nothing
return;
}
...
}
您也可以抛出显式异常(例如:IllegalArgumentException
(或处理这种情况。
若单词不应该为空,那个么这意味着您必须检查调用addWord
的方法。