배열에 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'
부터 입력받은 알파벳까지 출력한다.