
charAt은 자바에서 문자열에 index 값을 통해 문자를 읽어오는 방법이다.
String a = "안녕하세요"; 문자열에서
public class Main {
public static void main(String[] args) {
String a = "안녕하세요";
a.charAt(0); //안
a.charAt(1); //녕
a.charAt(2); //하
a.charAt(3); //세
a.charAt(4); //요
}
}
문자를 불러올 수 있다.
public class Main {
public static void main(String[] args) {
String a = "1234";
System.out.println(a.charAt(0));
System.out.println(a.charAt(1));
System.out.println(a.charAt(2));
System.out.println(a.charAt(3));
}
}
a.charAt(0)을 출력하게 되면 1이 출력이 되는데,
여기서 1은 숫자 1이 아닌 ' 문자 1 ' 이 된다.
이 문자 1은 char형인데, int형으로 형 변환을 하면 아스키코드 값인 49가 나오게 된다.
1이 필요한데, 49에서 1이 되기 위해서는 48을 빼줘야 하는데
여기서 '0'은 아스키코드값으로 int형으로 바꾸게 되면 48이 된다.
그래서 - '0'을 해준다..
숫자1 = 49, 숫자2 = 50, 숫자3 = 51 일 때, 여기에 - '0'을 해주게 되면
숫자1 = 1 , 숫자2 = 2 , 숫자3 = 3이 된다.
charAt - '0'
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int A = input.nextInt();
int B = input.nextInt();
int C = input.nextInt();
int result = (A * B * C);
String str = String.valueOf(result);
for (int i = 0; i < 10; i++) {
int count=0;
for (int j = 0; j < str.length(); j++) {
if((str.charAt(j) - '0')== i) {
count++;
}
}
System.out.println(count);
}
백준 문제에 있는 숫자의 개수 문제이다.
if문에 어떤 조건을 넣어야 할지 감이 도무지 안 잡혀 애를 좀 먹었다...ㅠㅠ
'Backend > JAVA' 카테고리의 다른 글
[JAVA] ServerSocket (0) | 2022.05.02 |
---|---|
[JAVA] HashMap (0) | 2022.04.27 |
[JAVA] 상속(Inheritance) (0) | 2022.04.22 |
[JAVA] Singleton Pattern (0) | 2022.04.21 |
[JAVA] 간단한 도서 관리 프로그램 (0) | 2022.04.20 |