我想获得“,”的位置,所以我使用了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)
答案 0 :(得分:5)
charAt
方法需要int
表示基于0的索引在哪里查找字符串。不幸的是,您传入的char
,
可以转换为int
,44
,并且您的字符串中没有45个或更多字符,因此StringIndexOutOfBoundsException
。
您想在字符串中找到,
的位置吗?那么charAt
是错误的方法。请改用indexOf
方法。
答案 1 :(得分:3)
您应该使用indexOf
,而不是charAt
System.out.println("Test,Test".indexOf(","));
charAt
仅返回字符串某个位置的字符;在这种情况下,它将是','
答案 2 :(得分:1)
如果您查看方法String#charAt(int index)
,您会看到它包含int
参数。当你给出'
字符时,它取ASCII的值( 44 )并尝试获取该索引处的值,该值恰好大于该值的长度。串。这就是你得到StringIndexOutOfBoundsException
。
您需要使用indexOf()
。
System.out.println("Test,Test".indexOf(','));
答案 3 :(得分:1)
charAt(int position)将输入参数作为整数。 “,”相当于ascii值44,因为这只是你的异常。