2014-03-01 4 views
0

자바 코드를 작성하고 있는데이 코드의 출력이 x 인 이유를 알고 싶습니다. 나는 그것이 제 5의 편지이기 때문에 t를 기대하고 있었다.java charAt() 메서드와 대리모

public class StringBufferDemo{ 
    public static void main(String args[]){ 
     StringBuffer sb = new StringBuffer("ttsttxctlltnt"); 
     System.out.println(sb.charAt(5)); 
    } 
} 
+0

'공공의 문자 수 charAt (INT 인덱스를) 시도로' "반환이 원한다면 그렇게 문자 5 일에 posistion X가 ... 인 0에서 시작 지정된 인덱스의 char 값. 인덱스의 범위는 0 ~ length() - 1입니다. 배열의 인덱스의 경우, 순서의 최초의 char 값은 인덱스 0, 다음의 인덱스 1 등입니다. http://docs.oracle.com/javase/7/docs/api/java/lang/String.html – bernie

+0

"t"는 여섯 번째 문자이고 java는 0에서 numberd를 시작하므로이 결과는 u가됩니다. –

답변

2

자바에서 StringBuffer 객체가 위치 0 등의 위치 1에서 2 ND 숯에서 0.1 세인트 문자에서 시작 색인 때문 이건 ...

String ------ "t t s t t x c t l l" 
ArrayIndex -- 0 1 2 3 4 5 6 7 8 9 
+1

아니요 ... "컴퓨터가 0에서 시작되기 때문에"가 아닙니다. Java StringBuffers는 0부터 색인화되기 때문입니다. 1) 모든 언어가 0에서 색인을 생성하는 것은 아닙니다. Fortran과 Pascal은 반대의 예이며 많은 다른 것들이 있습니다. 2) 모든 인덱서 블 Java 데이터 구조가 0에서 인덱싱되는 것은 아닙니다. 1에서 JDBC API 색인. –

1

색인은 0에서 시작하여 1이 아닙니다. 따라서 "ttsttxctlltnt"문자열에서 5 (0,1,2,3,4,5) 즉 'x'위치의 문자가 인쇄됩니다.

1

인덱스 유 t 출력은 다음

System.out.println(sb.charAt(4));