스트링 문자열의 끝을 알고 싶어요 ㅠㅠ
테이
length() 함수를 쓰면 문자열의 길이를 알수있는 방법 말고. . . . .
다른 방법으로 길이를 알수 있는 방법 없을까요?
처음 생각은 null 값이 들어 가는줄 알고 null 값 찾아 봤는데numll 값이 안들어 간다고 하네요 ㅠㅠ
아ㅏㅏ 함수써서 하는 방법 말고 스트링 문자열의 길이을 알수 있는 방법 없을까요?
length() 함수는 어떻게 구현 되었을까요 ??
-
무지개
count 변수의 경우 생성되는 문자열에 따라서 그때 그때 가변 시킵니다.
즉, String(String) 생성자의 경우를 예로 들자면...
제일 먼저 count 맴버 변수값을 전달받은 인자의 count 값으로 설정후
전달받은 문자열의 길이가 현재 count값보다 작을 경우(이때 value.length가 이용되겠죠^^) 그대로 대입하고
그렇지 않을경우 복사될 크기의 메모리 공간을 확보후 복사하는 과정을 거치게 됩니다.
역시 글보다는 소스가 이해가 빠르 -
츠키
참고로,
Java에서 직접 제공하는 String 클레스의 length() 메소드의 구현 방법이 궁금하시다면...
private char value[];
private int count;
처럼 필요한 맴버 변수 선언해 놓고
value에는 실제 값이
count에는 해당 문자열의 길이가 저장됩니다.
따라서, length()메소드는 아래처럼 구현 합니다*^^*
public int length() {
return count;
} -
가온
public static int len(String str){
\tint iLen=0;
\ttry {
\t\twhile(true) {
\t\t\tiLen++;
\t\t\tstr.substring(iLen);
\t\t}
\t}catch(IndexOutOfBoundsException e) {
\t\tiLen--;
\t}
\treturn iLen;
}
ㅎㅎㅎ.. 굳이 내부 length변수나 메소드를 이용하고 싶지 않다면야 .. 쿨럭.. -
날위해
str.toCharArray().length
ㅋㅋㅋㅋ -
한내
String클래스는 멤버변수로 char[]를 선언해서, 문자열의 내용을 담습니다. length()함수는 이 char[]의 length를 반환하는 겁니다.