배열에 a~z를 저장한 후 출력하는 프로그램을 작성하시오.
package Array;
import java.util.Scanner;
public class AtoZ {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//입력
System.out.print("알파벳 입력 : ");
char index = scan.next().charAt(0);
char[] alphabet = new char[index-('a'-1)];
//처리
for ( int i = 0; i < alphabet.length; i++ ) {
alphabet[i] = (char)('a'+i);
}
//출력
for ( int i = 0; i < alphabet.length; i++ ) {
System.out.print(alphabet[i]);
}
}
}
//입력
System.out.print("알파벳 입력 : ");
char index = scan.next().charAt(0);
char[] alphabet = new char[index-('a'-1)];
알파벳을 입력받아 charAt(0)을 이용해 한 글자를 char형 index변수에 저장한다.
char배열을 잡아서 입력받은 알파벳만큼의 공간을 잡아준다.
a의 아스키코드값은 97이다. 만약 입력받은 알파벳이 c라면 아스키코드값은 99가 될 것이고 char배열의 공간은 3이 되어야 할 것이다. 이를 만족하려면 99-96이 되어야 하기 때문에 'a'-1을 index에서 빼서 공간을 잡아주는 것이다.
//처리
for ( int i = 0; i < alphabet.length; i++ ) {
alphabet[i] = (char)('a'+i);
}
인덱스 방 번호를 나타내는 i를 인덱스 처음 방인 0으로 초기화한다.
입력받은 알파벳까지 출력해야 하기 때문에 앞에서 입력받은 알파벳만큼의 공간을 잡아주었던 alphabet의 크기 이전까지 인덱스를 뜻하는 i를 1씩 증가시킨다.
alphabet의 i번째 방에 'a'+i를 char로 강제 형변환시켜서 넣으면 'a'부터 'z'까지 넣을 수 있다.
//출력
for ( int i = 0; i < alphabet.length; i++ ) {
System.out.print(alphabet[i]);
}
'a'부터 입력받은 알파벳까지 출력한다.