JAVA/풀어봅시다 (eclipse)

[JAVA] 시저 암호

샛별KIM 2021. 5. 26. 10:36

알파벳 소문자와 번호를 입력하면

알파벳 소문자를 대문자로 바꾼 후 알파벳 순서 뒤로 입력한 번호만큼 이동하여 출력

단, 알파벳에 번호를 더한 값이 Z를 넘어가면 다시 A부터 시작한다.

import java.util.Arrays;
import java.util.Scanner;

public class Array05 {
	public static void main(String[] args) {
    // 사용자 입력
    Scanner sc = new Scanner(System.in);
    System.out.println("암호화 할 문자를 입력하세요.");
    String input = sc.next();

    System.out.println("몇 칸 이동할까요? 숫자를 입력하세요.");
   	int num = sc.nextInt();

     // 문자열 대문자로 -> 캐릭터 배열로 만들기
   	char[] inputArray = input.toCharArray(); // 캐릭터 배열 만들기
     // 또는?
   	for (int i = 0; i < inputArray.length; i++) {
  		inputArray[i] = input.charAt(i);
  	}

     // 문자열 대문자로 만들기
  	for (int i = 0; i < inputArray.length; i++) {
       // 대문자 만들기
     	inputArray[i] = Character.toUpperCase(inputArray[i]);

       // 정해진 숫자만큼 밀기
      	if (inputArray[i] + num > 'Z') {
         	inputArray[i] = (char) (inputArray[i] + num - 26);
       	} else {
        inputArray[i] = (char) (inputArray[i] + num);
   		}
	}

   System.out.println("암호화된 문자는 ");
   System.out.println(Arrays.toString(inputArray));
   }
}

 

//////출력

암호화 할 문자를 입력하세요.
az
몇 칸 이동할까요? 숫자를 입력하세요.
1
암호화된 문자는 
[B, A]