2013-05-17 4 views
0
import java.util.Scanner; 

public class Test { 

public static void main (String [] args){ 

    String word = "ErFLwWSa$ F?ytWtmVRLWmDj #[email protected] 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)); 
    } 
} 
} 

В основном, что я пытаюсь выполнить.StringIndexOutOfBoundsException в FOR Loop

Скажите, что у меня есть строка word Я хотел бы знать, сколько раз я могу поместить письмо в word2 в word, пробел, числовые символы и символы не учитываются.

В основном выход должен показывать мне что-то вроде этого.

ErFLwWSa$ F?ytWtmVRLWmDj #[email protected] VRa!12OW

GREENGRE E NGREENGREENG REE NGR EE

ответ

1

Допустим, у вас есть строка длины 10.

for(int i=0; i<a.length();i++) проходит от 0 до 9 (10 в общей сложности) - Запомни, Java массивы 0 основе.

a.length() будет 10, i будет работать от 0 до 9 (9 - максимальное целое число, которое меньше 10, на следующей итерации условие не будет выполнено).

Когда вы делаете: if(a.charAt(i)==a.charAt(i+1)), вы пытаетесь добраться до элемента в позиции 10, таким образом вы получаете исключение.

+0

Я бы перефразировал его как «элемент в положении 10». –

+0

Действительно, намного лучше :) – Maroun

+0

Так что главное, чтобы читать caracter 11, которого нет? Теперь как это будет противодействовать? Добавьте оператор if, если я нахожусь в последнем цикле цикла? – hayonj

Смежные вопросы