2014-06-17 3 views
-1

우선, 나는 이것에 대해 새로운 것을 알기 때문에 똑똑한 사람들은 좋을 것입니다! 내가 이해하려고 노력하고내가 찾는 방법으로 문자열을 혼합하는 방법은 무엇입니까?

왜이 줄 : 및 코드이 줄을 :

for(i = 0 ; i <= word.length(); i++) 
    System.out.print(word.charAt(i)); 

:

for(i = word.length() -1; i >= 0; i--) 
    System.out.print(word.charAt(i)); 

내 문자열이 나에게 뒤로 미세 (oaiCgiiB 답을) 응답 수 오류가 발생했습니다 ...

Beijing ChicagoException in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 15 
    at java.lang.String.charAt(String.java:646) 
    at p200548.main(p200548.java:43) 

두 번째 것이 출력 대신에 첫 번째처럼 작동하도록합니다. BiigCiao

도움을 주시면 감사하겠습니다.

+0

for (i = 0; i Bozman

+0

'i <= word.length(); 'for Rohan

답변

0
for(i = 0 ; i <= word.length()-1; i++) //add mines 1 here 
System.out.print(word.charAt(i)); 

을 인쇄 아무 문제가 없다 -1 ;word.length()-1;

에 단어 색인 "0"시작 때문에 word.length() "로 끝나는 - 1 "

3

범위를 벗어났습니다.

이 때 : 길이 = 3

for(i = word.length() -1; i >= 0; i--) 
System.out.print(word.charAt(i)); 

2, 1, 0, 다음 인덱스 사용

for(i = 0 ; i <= word.length(); i++) 
System.out.print(word.charAt(i)); 

은 인덱스를 사용을 0, 1, 2, 3, 3 3.

는 는

당신은 아마 원하는 = 길이에 대한 범위를 벗어났습니다 :

for(i = 0 ; i < word.length(); i++) 
System.out.print(word.charAt(i)); 

인덱스 0, 1, 2를 사용합니다.

+0

(그래서'i

0

C 언어에서는 배열의 경계를 경계하지 않으므로 예외가 발생하지 않습니다. 이것은 C. Java의 문제 중 하나입니다. 그러나 항상 바운드를 검사하고 배열 외부의 인덱스에 액세스하려고 할 때마다 'IndexOutOfBoundsException'을 제공합니다.

C에서 동등한 코드 :

for(i = 0 ; i <= strlen(word); i++) 
    printf("%c",word[i]); 

단어로 잘 작동 것은 [길이] '\ 0'당신은 추가해야

관련 문제