java.lang.StringIndexOutOfBoundsException:使用charAt函数时

时间:2013-10-16 17:26:43

标签: java

我想获得“,”的位置,所以我使用了charAt函数

下面是代码

    public class JavaClass {

public static void main(String args[]){
    System.out.println("Test,Test".charAt(','));
}
}

但问题是我得到StringIndexOutOfBoundException可以任何身体帮助我为什么我收到此错误

我也想知道如果找不到',',那么该值将会返回

错误低于

      Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 44
at java.lang.String.charAt(Unknown Source)
at JavaClass.main(JavaClass.java:5)

4 个答案:

答案 0 :(得分:5)

charAt方法需要int表示基于0的索引在哪里查找字符串。不幸的是,您传入的char ,可以转换为int44,并且您的字符串中没有45个或更多字符,因此StringIndexOutOfBoundsException

您想在字符串中找到,的位置吗?那么charAt是错误的方法。请改用indexOf方法。

答案 1 :(得分:3)

您应该使用indexOf,而不是charAt  System.out.println("Test,Test".indexOf(",")); charAt仅返回字符串某个位置的字符;在这种情况下,它将是','

的ascii代码

答案 2 :(得分:1)

如果您查看方法String#charAt(int index),您会看到它包含int参数。当你给出'字符时,它取ASCII的值( 44 )并尝试获取该索引处的值,该值恰好大于该值的长度。串。这就是你得到StringIndexOutOfBoundsException

的原因

您需要使用indexOf()

System.out.println("Test,Test".indexOf(','));

答案 3 :(得分:1)

charAt(int position)将输入参数作为整数。 “,”相当于ascii值44,因为这只是你的异常。