2013-12-03 2 views
0

이 프로그램은 내가 원하는 것을 수행하지만 큰 오류도 출력합니다. 어느 쪽이 "범위 밖의 배열. 문자열 인덱스가 범위를 벗어남"과 같은 것을 말합니다. 이 프로그램은 문장을 입력 받아 알파벳에서 다른 글자 (4 자 위로)를 사용하여 다시 작성하기위한 것입니다. 이 오류를 해결하는 데 도움주세요! 당신이 StringIndexOutOfBoundsException을받을 경우문자열 인덱스 범위를 벗어난 오류, 기본 프로그램

public class Encryption 
{ 
public static void main (String [] args) 
{ 
System.out.print("Enter a message to encrypt: "); 
String input = Console.readString(); 

for(int i = 0; i<100; i++) 
{ 
char oldChar = input.charAt(i); 

char encryptedChar = (char) (oldChar + 4); 

System.out.print(encryptedChar); 
} 
} 
+1

오류의 어떤 부분을 이해하지 못합니까? 힌트 : 루프가 언제 멈춰야합니까? – SLaks

답변

1

은, 당신의 입력은 100 자하지 않습니다.

100자를 기대하지 마십시오. i이 문자열 길이에 도달하면 for 루프를 중지하십시오.

for (int i = 0; i < input.length(); i++) 
0

루프 경계를 변경하십시오. 사용자가 100 자 미만을 입력하면 입력 길이를 초과하는 i = 0에서 i = 99로 반복됩니다.

for (int i = 0; i < input.length(); i++) 
+0

감사합니다. 그것은 그것을 고쳤다. – user3037813

1

입력은 항상 100 자 문자열입니까, 나는 그렇지 않으며 오류라고 생각합니다. 100을 input.length()으로 바꾸십시오.

0

앞서 말씀 드린대로 루프를 하드 코딩하여 100 개의 문자를 반복하십시오. 문자열이 100 문자가 아니면 어떻게 되나요

관련 문제