상황
import java.io.*;
public class Main {
//입력값이 항상 숫자와 알파벳으로 구성된 문자열이 들어온다고 가정!
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
for(int i=0;i<input.length();i++){
char c = input.charAt(i);
if(c >= 65)
System.out.println(c + "는 알파벳입니다.");
else
System.out.println(c + "는 숫자입니다.");
}
}
}
- if문 + 아스키 코드를 사용하여 각 char의 문자가 숫자인지 알파벳인지 확인하고 있습니다.
- 하지만 Character.isDigit/Character.isAlphabetic을 사용하면 더 간결하게 큰 수와 작은 수를 구분할 수 있습니다.
※ 아스키 코드 표
아스키 코드 표에서 숫자[48 ~ 57], 소문자 알파벳[97 ~ 122], 대문자 알파벳[65 ~ 90]로 표현됩니다.
항상 숫자와 알파벳만 주어지는 상황일 때 아스키 코드가 65이상이면 항상 알파벳입니다.
사용법
import java.io.*;
public class Main {
//입력값이 항상 숫자와 알파벳으로 구성된 문자열이 들어온다고 가정!
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
for(int i=0;i<input.length();i++){
char c = input.charAt(i);
if(Character.isAlphabetic(c))
System.out.println(c + "는 알파벳입니다.");
else if(Character.isDigit(c))
System.out.println(c + "는 숫자입니다.");
}
}
}
- Character.isDigit(값)은 값이 숫자인지 확인하여 숫자이면 True, 아니면 False를 반환합니다.
- Character.isAlphabetic은 값이 알파벳인지 확인하여 숫자이면 True, 아니면 False를 반환합니다.
※Character.isDigit()으로 숫자인지 확인한 다음에 Character.getNumericValue()를 통해서 char의 숫자를 아스키 코드가 아닌 그대로 int형으로 형변환을 시킬 수 있습니다.
예제
코드
import java.io.*;
public class Main {
//입력값이 항상 숫자와 알파벳으로 구성된 문자열이 들어온다고 가정!
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
for(int i=0;i<input.length();i++){
char c = input.charAt(i);
if(Character.isAlphabetic(c))
System.out.println(c + "는 알파벳입니다.");
else if(Character.isDigit(c)) {
System.out.println(c + "는 숫자입니다.");
//Character.getNumericValue 이용하여 아스키 코드값이 아닌 숫자 그대로 int로 형변환
System.out.println("char " + c + " -> int " + Character.getNumericValue(c) );
}
}
}
}
결과
'JAVA' 카테고리의 다른 글
Spring에서 Notification을 구현해보자(WebFlux, Reactor Sinks, SSE) (2) | 2024.02.27 |
---|---|
Spring Cache를 파헤쳐 보자!(WebMvc, WebFlux) (0) | 2023.12.13 |
[JAVA] 이항계수 알고리즘 정리 (0) | 2022.02.07 |
[JAVA] 배열 및 객체 정렬하는 방법 Arrays.sort, Collections.sort (0) | 2022.01.13 |
[JAVA] 숫자 큰값/작은값 비교하기 Math.max/Math.min (0) | 2022.01.04 |
댓글