gpt4 book ai didi

java - variable1.indexOf(variable2.charAt(i)) 越界异常

转载 作者:行者123 更新时间:2023-12-01 12:08:05 25 4
gpt4 key购买 nike

这是我的学校作业,我应该创建一个编码器。用户输入包含在变量“key”中的加密 key ,加密 key 的示例是“abc”。使用字母表,我应该根据字母表的顺序添加用户输入的键中的字母。例如,键“abc”应该加6。所以根据字母顺序'a'是1,b = 2,c = 3,所以1 + 2 + 3 = 6。

现在,对于此错误,每当我尝试添加 Alphabet.indexOf(key.charAt(i)) 时,它都会给出越界异常。我该如何解决这个问题?

 35   public static int option1(String input, String alphabet, String key)
36 {
37
38 int sum = 0;
39
40 for (int i = 0; i < alphabet.length(); i++)
41 {
42
43 **sum = sum + alphabet.indexOf(key.charAt(i));**
44
45 }
46
47 System.out.println(sum);
48 return sum;
49 }

这会产生错误

java.lang.StringIndexOutOfBoundsException: String index out of range: 3
at java.lang.String.charAt(Unknown Source)
at Encryption.option1(Encryption.java:43)
at Encryption.main(Encryption.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

错误是 sum 语句,其中我使用另一个变量的字母添加了字母表中某个字母的索引。为什么会出现越界异常?如何解决?

最佳答案

如果您有 key abc,它可以分解为a[0] b[1] c[2],因此在for 循环,当你到达 i == 3 时,它超出了你的 key 范围。因此,您需要更改 for 循环以使用 key.length() 而不是 alphabet.length(),如下所示:

for (int i = 0; i < key.length(); i++)
{
sum = sum + alphabet.indexOf(key.charAt(i));
}

关于java - variable1.indexOf(variable2.charAt(i)) 越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com