무작위 정수에 'a'를 더해 알파벳 범위의 영소문자를 생성한다는 게 무슨 뜻이야?

Robyn·2023년 5월 3일
0

컴퓨터에서 문자는 내부적으로 숫자로 표현됩니다. 예를 들어, 아스키 코드(ASCII code)에서는 영문 대소문자와 일부 기호를 각각 0부터 127까지의 숫자로 대응시켰습니다. 따라서, 문자 'a'의 아스키 코드 값은 97이며, 'b'는 98, 'c'는 99, ... 'z'는 122입니다.

위에서 제시한 printAlphabet 메소드에서는 Random 클래스의 nextInt 메소드로 발생시킨 0부터 25까지의 무작위 정수에 'a'를 더하여, 영소문자 'a'부터 'z'까지의 문자를 무작위로 생성합니다. 예를 들어, num 변수에 0이 저장되면 num + 'a'는 97이 되어 문자 'a'를 생성하고, 1이 저장되면 98이 되어 'b'를 생성합니다.

따라서, 무작위로 발생시킨 정수를 이용하여 문자를 생성하는 방법은 매우 일반적인 방법입니다. 이와 같은 방법으로 문자를 생성할 수 있는 이유는 문자의 내부적인 표현 방식이 숫자로 되어 있기 때문입니다.

public static char printAlphabet() {
    Random random = new Random();
    int num = random.nextInt(26); // 0~25 사이의 무작위 정수를 발생시킵니다.
    char c = (char) (num + 'a'); // 무작위 정수에 'a'를 더해 알파벳 범위의 영소문자를 생성합니다.
    return c;
}

	// 실행 요청 시 알파벳 범위의 영소문자를 하나 발생시켜 리턴하는 메소드
	// 메소드명 : printAlphabet
	
	public char printAlphabet() {
		// a b c d e f g h i j k l m n o p q r s t u v w x y z
		return (char)((int)(Math.random()*26) + 'a');		
	}	// 반환 값은 있고 매개변수는 없는 메소드

0개의 댓글