首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字符串索引超出范围异常,而for循环不工作。

字符串索引超出范围异常,而for循环不工作。
EN

Stack Overflow用户
提问于 2013-08-14 17:32:45
回答 5查看 2.6K关注 0票数 1

对于第一个for循环:for(int i=0;i<=name.length();i++),我得到了正确的输出,但不知道为什么这个循环:for(int i=name.length();i>=0;i--)没有得到任何输出。在执行时,我收到一个错误,说索引超出了范围。

我检查了错误here,但我不明白。

代码语言:javascript
运行
复制
public class runner {
    public static void main(String[] args) {
        String name = "java";
        System.out.println(".length method()" + name.length());// executing
                                                                // .length()
                                                                // method
        System.out.println(".charAt method()" + name.charAt(5));
        for (int i = 0; i <= name.length(); i++) {
            System.out.println(name.charAt(i));
        }
        for (int j = name.length(); j >= 0; j--) {
            System.out.println(name.charAt(j));
        }
    }
}

输出

代码语言:javascript
运行
复制
j
a
v
a
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-08-14 17:34:15

问题是i<=name.length();

您需要i<name.length();,因为长度超出了字符串中包装字符数组的界限。

出于同样的原因,您需要将第二个For循环更改为

代码语言:javascript
运行
复制
for(int j=name.length()-1 ;j>=0;j--){
票数 6
EN

Stack Overflow用户

发布于 2013-08-14 17:34:48

数组是0索引的,将<=更改为<

每次你打电话时,你都会收到那个错误

代码语言:javascript
运行
复制
name.charAt(name.length())
票数 2
EN

Stack Overflow用户

发布于 2013-08-14 17:35:56

没有绑定异常,因为Java数组索引从零开始。例如,如果数组的长度= 5,则第一个元素的索引将为0,最后一个元素的索引将为4 (length - 1)。

改变你的路线

代码语言:javascript
运行
复制
for(int i=0;i<=name.length();i++){

代码语言:javascript
运行
复制
for(int i=0;i<name.length();i++){

和线

代码语言:javascript
运行
复制
for(int j=name.length();j>=0;j--){

代码语言:javascript
运行
复制
for(int j=name.length()-1;j>=0;j--){
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18238458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档