为什么我得到StringIndexOutOfBoundsException?

时间:2015-08-20 14:38:54

标签: string char

for(int i=0;i<5;i++) 
{           
  char ans = s.next().charAt(i);    
}

我得到StringIndexOutOfBoundsException。为什么会这样?

3 个答案:

答案 0 :(得分:1)

因为s.next()返回的String少于5个字符。如果您希望它更长,请尝试打印s.next()以查看该值。

答案 1 :(得分:0)

您正在获取异常,因为您尝试在“ans”变量中分配一个不可用的字符。这背后的原因是,通过调用's.next()'方法获得的字符串不会返回至少包含5个字符的字符串。假设字符串是“Me”,你试图循​​环它5次,只有两个字符。所以,当你试图寻找第三个索引字符时,没有,所以你得到的是“StringIndexOutOfBoundsException”......

答案 2 :(得分:0)

您还可以重复使用Scanner对象,无需为每个用户输入创建一个新对象。 并且:“charCount = charCount ++;” - &GT; “charCount ++;”