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);」になります。することは何も残っていません。

しかし、この問題を解決する方法がわかりません!

4

6 に答える 6

3

iから開始1

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;
    } 
于 2012-11-08T18:02:01.120 に答える
2

患者:「その状態でこれを行うと痛い」

医者: 「それなら、その条件が満たされているなら、それをしないでください」

if(i+1 < word.length)
{
    char nextRank = word.charAt(i+1);
    ...
于 2012-11-08T18:01:51.047 に答える
2

どうですか

for (int i = 0; i < word.length() - 1; i++) {  
于 2012-11-08T18:04:20.763 に答える
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;
}
于 2012-11-08T18:02:08.173 に答える
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;
        } 
于 2012-11-08T18:02:58.890 に答える
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;
        } 
于 2012-11-08T18:03:22.950 に答える