11654번 - 아스키코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char munja = sc.nextLine().charAt(0);
int num = (int)munja;
System.out.println(num);
}
}
* charAt() : 해당 문자의 아스키코드를 반환해주는 메소드.
입력받은 문자를 아스키코드로 반환한 뒤, int(정수형)로 형변환을 하여 num변수에 대입한다.
11720번 - 숫자의 합
방법 1) charAt() 메소드 사용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); //문자열의 길이를 입력
String num = sc.next(); //문자열 입력
sc.close();
int sum = 0;
for(int i = 0; i < N; i++) {
sum += num.charAt(i)-'0';
}
System.out.println(sum);
}
}
입력받은 문자열을 charAt() 메소드를 통해 아스키코드로 변환한 뒤, '0' 혹은 48을 빼주어 sum변수에 대입한다.
여기서 '0' 혹은 48을 빼주어야 자기 자신의 숫자를 가질 수 있다.
방법 2) 문자열을 입력받고, getBytes() 메소드 사용
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
int sum = 0;
for(byte num : br.readLine().getBytes()) {
sum += (num - '0');
}
System.out.println(sum);
}
}
* getBytes() : 문자열을 입력받을 때 해당 문자열을 byte배열로 반환받을 수 있는 메소드, java.lang.string 패키지에 있는 메소드이므로 따로 import 할 필요 없음.
BufferedReader, InputStreamReader를 사용하여 문자열을 입력받는다.
getBytes() 메소드를 사용하여 입력받은 문자열을 byte 단위로 변환시켜 num변수에 대입한다.
num변수에서 '0' 혹은 48을 빼주어 자기 자신의 숫자를 가진 뒤, 반복문이 끝날 때까지 sum변수에 더해준다.
2021.07.05
'Baekjoon' 카테고리의 다른 글
[C++] 11653번 - 소인수분해 (0) | 2021.09.30 |
---|---|
[자바, C++] 1978번 - 소수 찾기 (0) | 2021.09.26 |
[자바] 백준 - 8958번 (0) | 2021.08.04 |
[자바] 백준 - 3009번, 4153번, 2557번 (0) | 2021.07.29 |
[백준 - 자바] 수학 - 2558번 / 1546번 / 3052번 (0) | 2021.07.09 |