String Index out of bounds error,基本程序

时间:2013-12-03 19:40:37

标签: java

这个程序完成了我想要它做的事情,但它也输出了一个巨大的错误。其中的内容类似于“数组越界。字符串索引越界”。该程序用于输入一个句子,并使用字母表中的不同字母(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);
}   
}

4 个答案:

答案 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

,该怎么办?