package ja_0725;
public class String_3 {
public static void main(String[] args) {
char[] char_str = new char[15];
String str = "오늘 날씨는 참 시원합니다.";
for (int i = 0; i < char_str.length; i++)
{
char_str[i] = (char)(65 + i);
}
for (int i = 0; i < char_str.length; i++)
{
System.out.print(char_str[i]);
}
System.out.println("str 문자 : " + str);
System.out.println("str 문자 수 : " + str.length());
str.getChars(3, 10, char_str, 0);
System.out.println("char_str 문자수 : " + char_str.length);
for (int i = 0; i < char_str.length; i++)
{
System.out.print(char_str[i]);
}
}
}
문제를 천천히 들여다 보겠습니다.
char[] char_str = new char[15];
char_str 이란 배열에 15개 문자를 넣겠다는 것을 의미합니다.
char_str[i] = (char)(65 + i);
char_str[i] 에 (char)로 형변환 하여 아스키코드 i를 입력하겠다는 의미입니다.
0이면 A 1이면 B가 출력됩니다. 대문자 A의 아스키코드는 65입니다.
str.getChars(7, 11, char_str, 11);
str.getChars입니다. 네 가지의 숫자,문자가 들어갑니다.
첫번째 숫자는 출력할 문구의 첫 시작점을 의미합니다.
7번째부터 시작하겠다는 뜻입니다.
11은 11번째에서 끝나겠다는 말입니다.
7번부터 시작됐으니 11번에서 끝내면 총 4개의 문자가 들어가겠습니다.
char_str은 char_str을 복사해 넣겠다는 의미입니다.
char_str "오늘 날씨는 참 시원합니다"의 7번에서 11번째까지의 문자가 들어갑니다.
마지막 11은 11번째 문자열에서 시작하겠다는 의미입니다.
그럼 어떻게 출력될까요?
'ABCDEFGHIJK참 시원'이라고 출력됩니다. 이해 되시나요?