Java 字符串索引愤怒,但看不出原因。代码按照我的要求执行,但在提交到大学检查系统时失败
因此,我目前正在学习一门在线课程,并取得了相当好的进展,直到有一次练习,我应该创建一个密码生成器,密码长度由用户给定 代码的输出看起来不错,它生成了给定长度的密码,但当提交给大学在线检查系统时;我收到一个失败和此错误: StringIndexOutOfBoundsException:字符串索引超出范围:26 我是新来的,我真的很努力地想自己解决这个问题。但作为一个新事物,即使是表面的解决方案也很难理解 我将代码放在这里,不确定如何最小化代码以显示问题 我将感谢任何帮助。如果我有机会的话,我肯定会提前支付的。祝您一切顺利,谢谢。这是一行:Java 字符串索引愤怒,但看不出原因。代码按照我的要求执行,但在提交到大学检查系统时失败,java,oop,random,passwords,Java,Oop,Random,Passwords,因此,我目前正在学习一门在线课程,并取得了相当好的进展,直到有一次练习,我应该创建一个密码生成器,密码长度由用户给定 代码的输出看起来不错,它生成了给定长度的密码,但当提交给大学在线检查系统时;我收到一个失败和此错误: StringIndexOutOfBoundsException:字符串索引超出范围:26 我是新来的,我真的很努力地想自己解决这个问题。但作为一个新事物,即使是表面的解决方案也很难理解 我将代码放在这里,不确定如何最小化代码以显示问题 我将感谢任何帮助。如果我有机会的话,我肯定
thisChar = passwordOptions.charAt(random.nextInt(passwordLength + 1));
passwordLength是传入的参数;如果超过25,则可能会选择不在passwordOptions范围内的字符。对于较小的passwordLength值,您的密码中的所有字母是否都位于字母表的开头?没有人会为您调试代码(尤其是当某些索引过时时!)。试试看@arghtype,我很抱歉。对于一个初学者来说,这让我感到慌乱。这不会再发生了。谢谢你的链接,它帮助我理解。你的最后一个问题和其他回复帮助我解决了这个问题。我无意中说从0和passwordLength+1之间的随机索引中获取一个passwordOptions字符。但是,用户可以设置密码长度,这样就不会从密码选项中提供的全部字符范围中进行选择。我将此参数更改为(passwordOptions.length());因此,它可以从可用字符的整个范围中选择一个字符,而不仅仅是用户给定的范围。我相信你知道我只是在为别人解释和说谢谢。