package algorithm;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String num = sc.nextLine();
int sum = 0;
for (int i = 0; i < num.length(); i++) {
if(num.charAt(i)-48 > 0 && num.charAt(i)-48 < 10) {
sum += (num.charAt(i)-48);
} else {
continue;
}
}
System.out.println(sum);
}
}
해당 풀이 과정에서 char를 int로 변환
시켜야 되는데 그 부분을 생각하지 못해 풀이가 힘들었다.
🎬 Java에서 char를 int로 변환시키는 방법
Java에서 char를 int로 변환시키기 위해서는 유니코드를 이용해야한다.
즉, '1'-48 = 1, '2'-48 = 2 이런식으로 정수로 변환할 수 있다.
이유는 '1'이 정수 값 49를 가지고 있기 때문이고, 2는 50 ...
추가로 '1' - '0'을 해줘도 된다. 이유는 문자 1은 정수 값 48, 문자 0은
정수 값 1을 가지기 떄문이다. 그리고 int 보다 크기가 작은 자료형 short,
byte, char 등 끼리 연산 시 결과가 int로 출력된다.
👆 참고로 백준에서 Hello World!
출력을 6번 이상 틀린 것 같은데,
1. 사용 언어 체크
2. Java의 경우 최상단 package 경로 삭제
3. Class명 Main으로 설정 (백준에서 Main.java로 읽는다고 함)
이 세가지 과정이 필요하다.