[자바JAVA]1041 : [기초-산술연산] 문자 1개 입력받아 다음 문자 출력하기(설명), Scanner로 char받기

문제 1041 : [기초-산술연산] 문자 1개 입력받아 다음 문자 출력하기(설명)

영문자 1개를 입력받아 그 다음 문자를 출력해보자.
영문자 ‘A’의 다음 문자는 ‘B’이고, 영문자 ‘0’의 다음 문자는 ‘1’이다.

참고
숫자는 수를 표현하는 문자로서 ‘0’ 은 문자 그 자체를 의미하고, 0은 값을 의미한다.

힌트
아스키문자표에서 ‘A’는 10진수 65로 저장되고 ‘B’는 10진수 66으로 저장된다.
따라서 문자도 값으로 덧셈을 할 수 있다.

  • 입력예시
    영문자 1개가 입력된다.
1
a
  • 출력예시
1
b




첫번째 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
sc.close();

//String -> char
char c = s.charAt(0);

//char+1
int i = c+1;

//char로 출력
System.out.printf("%s", (char)i);
}
}




두번째 코드

위의 코드보다 더 간결하게 나타낼 수 있다.

1
2
3
4
5
6
7
8
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char a = sc.nextLine().charAt(0);
System.out.printf("%c", a+1);
}
}




배운 지식

꼭 기억하자

  • char를 Scanner로 받을땐 sc.nextLine().charAt(0);로 받으면 String이 아닌 Char형태로 바로 받을 수 있다.
  • char를 printf로 출력할때 "%s"가 아니라 "%c"로 출력하면 된다.




다른 문제 풀이가 보고싶다면?