Java中访问字符串指定索引报错,求正确实现方式
问题解答:Java中访问字符串指定索引报错的原因及解决方法
嘿,这个问题我刚学Java的时候也踩过一模一样的坑!咱们来把问题拆解开说清楚:
错误根源
你看到的Array type expected; found: 'java.lang.String'错误,核心原因是:Java里的String是一个对象,不是原生的字符数组。虽然字符串底层确实是用字符数组实现的,但它并没有对外暴露数组的直接访问语法,所以你用inputString[2]这种数组下标方式去取字符,编译器肯定不认呀。
正确的解决方式
Java给String类专门提供了获取指定索引字符的方法——charAt(int index),索引规则和数组一样,从0开始计数。
把你的代码改成下面这样,就能正常运行了:
public static void main(String []args){ String inputString = "apple"; char a = inputString.charAt(2); //one 这里不再报错 System.out.println(inputString.charAt(2)); //two 会输出字符'l' }
额外小技巧
如果你实在习惯用数组下标访问的逻辑,也可以先把字符串转换成字符数组再操作:
public static void main(String []args){ String inputString = "apple"; char[] charArray = inputString.toCharArray(); char a = charArray[2]; System.out.println(charArray[2]); }
不过这种方式会额外创建一个字符数组对象,要是只是单纯获取单个字符,charAt()会更高效简洁。
内容的提问来源于stack exchange,提问作者Shashank Setty
相关产品推荐
相关产品推荐

