这个程序完成了我想要它做的事情,但它也输出了一个巨大的错误。其中的内容类似于“数组越界。字符串索引越界”。该程序用于输入一个句子,并使用字母表中的不同字母(4个字符)重写它。 请帮我澄清这个错误!
public class Encryption
{
public static void main (String [] args)
{
System.out.print("Enter a message to encrypt: ");
String input = Console.readString();
for(int i = 0; i<100; i++)
{
char oldChar = input.charAt(i);
char encryptedChar = (char) (oldChar + 4);
System.out.print(encryptedChar);
}
}
答案 0 :(得分:1)
如果你得到StringIndexOutOfBoundsException
,那么你的输入不是100个字符。
不要指望100个字符; <{1}}达到你的字符串长度后停止for
循环。
i
答案 1 :(得分:1)
输入总是一个100个字符的字符串,我相信不是,这就是错误。将{100替换为input.length()
答案 2 :(得分:0)
更改循环边界。如果用户输入的字符少于100个,则从i = 0循环到i = 99,这将超过输入长度。
for (int i = 0; i < input.length(); i++)
答案 3 :(得分:0)
如前所述,您对循环进行了硬编码以迭代100个字符。如果字符串不是100 char
,该怎么办?