FOR循环中的StringIndexOutOfBoundsException

时间:2013-05-17 20:08:03

标签: java if-statement for-loop replace character

import java.util.Scanner;

public class Test {

public static void main (String [] args){

    String word = "ErFLwWSa$ F?ytWtmVRLWmDj #4STs!@  VRa!12OW";
    String word2 = "GREEN";
    String result ="";
    for(int i = 0; i<=word2.length()-1; ++i){
        result += word.replace(word.charAt(i),word2.charAt(i+1));
    }
}
}

基本上我想要完成的事情。

说我有任何字符串word我想知道在word2 word ErFLwWSa$ F?ytWtmVRLWmDj #4STs!@ VRa!12OW中可以填写多少次字母,空格,数字和符号都不计算在内。

基本上输出应该显示我这样的东西。

GREENGRE E NGREENGREENG REE NGR EE

{{1}}

1 个答案:

答案 0 :(得分:1)

假设您有一个长度为10的字符串。

for(int i=0; i<a.length();i++)从0到9(总共10个) - 请记住,Java数组是从0开始的。

a.length()为10,i将从0到9(9是小于10的最大整数,在下一次迭代中,不满足for条件)。< / p>

当你执行:if(a.charAt(i)==a.charAt(i+1))时,你试图到达位置10的元素,因此你得到了例外。