循环中的Java超出范围

3
这段代码虽然能够工作,但是写得很丑陋:
for ( int i = 0, l=1; i < word.length() && l < word.length(); i++, l++) {  
    char c = word.charAt(i);
    j = (int) c;
    char nextRank = word.charAt(l);
    k = (int) nextRank;
} 

我希望您可以将它改成这样:

我想将他更改为以下内容:

for (int i = 0; i < word.length(); i++) {  
    char c = word.charAt(i);
    j = (int) c;
    char nextRank = word.charAt(i+1);
    k = (int) nextRank;
} 

这个代码会返回一个错误:String index out of range。我明白原因:当遍历到最后一个字母时,"char nextRank = word.charAt(i+1);"就没有什么可做的了。
但是我不知道如何解决这个问题!

如果你不知道,那么谁知道呢? - Roman C
6个回答

3

1 开始启动 i

for (int i = 1; i < word.length(); i++) {  
        char c = word.charAt(i-1);
        j = (int) c;
        char nextRank = word.charAt(i);
        k = (int) nextRank;
    } 

2

你能行吗?

for (int i = 0; i < word.length() - 1; i++) {  

2

病人:“在那种情况下我做这个会很疼。”

医生:“那么,如果遇到那种情况,就不要做那个动作。”

if(i+1 < word.length)
{
    char nextRank = word.charAt(i+1);
    ...

1
int length = word.length() - 1;
for (int i = 0; i < length; i++) {
    char c = word.charAt(i);
    j = (int) c;
    char nextRank = word.charAt(i + 1);
    k = (int) nextRank;
}

0
只需要将i的限制减1即可。
for (int i = 0; i < word.length()-1; i++) {  
            char c = word.charAt(i);
            j = (int) c;
            char nextRank = word.charAt(i+1);
            k = (int) nextRank;
        } 

0
你只需要从0循环到word.length() -1。
        for (int i = 0; i < word.length() - 1; i++) {  
            char c = word.charAt(i);
            j = (int) c;
            char nextRank = word.charAt(i+1);
            k = (int) nextRank;
        } 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接