Coding Note/Java
Java 4-4) 자바 예제 _ 숫자인지 문자인지 판별 프로그램 / 아스키코드
푸린이
2021. 12. 12. 01:48
예제1) 변수의 문자가 숫자로만 되어있는지 아니면 다른 문자인지를 판별하는 코드
char c = 'A';
char c = 'A';
int asccode = (int)c;
// 변수를 아스키코드로 변환해 숫자로 만들어보기
System.out.println(asccode);
// 숫자인지 아닌지 판별
if (asccode >= 48 && asccode <=57) {
System.out.println("숫자입니다."); // 숫자일 경우
}
else {
System.out.println("숫자가 아닙니다."); // 숫자가 아닌 경우
}
// boolean을 이용해 풀어보기
char c = 'A';
// 숫자입니다 (숫자가 아닙니다) 판별
int asccode = (int)c; // c만 넣어도 자동변환 되지만 명확하게 넣기 위해서 (int)c 표기
boolean numberOK = true;
if(asccode < 48 || asccode > 57) { // 숫자가 아니다
numberOK = false;
}
if(numberOK) {
System.out.println("숫자입니다");
}
else {
System.out.println("숫자가 아닙니다");
}
예제2) 입력된 문자열이 모두 숫자로 되어있는지 아니면 모두 숫자로 되어있지 않는지 판별하는 코드
// 아스키코드 활용하기
- 123, 123a, 1s23 이런 것을 입력했을 때, 숫자인지 문자가 포함되어있는지 판별
System.out.print("number : ");
String strNum = sc.next(); // 입력은 문자열로 받음 // "12345" → char[]
boolean numberOK = true; // 초기화
for (int i = 0; i < strNum.length(); i++) {
char ch = strNum.charAt(i); // 입력받은 것을 문자로 하나씩
int n = (int)ch; // 하나씩 아스키코드로 변환(cast)
if(n < 48 || n > 57) {
numberOK = false;
break;
}
}
if(numberOK) {
System.out.println("모두 숫자입니다");
int Number = Integer.parseInt(strNum); // 숫자로 입력되면 문자열에서 숫자형으로 변경(안해도됨)
}
else {
System.out.println("숫자가 아닌 문자가 포함되어 있습니다");
}
예제3) 영단어를 toUpperCase나 toLowerCase를 사용하지 않고 모두 대문자로 출력
// 초기화
String word = "Hello";
String result = "";
for (int i = 0; i < word.length(); i++) {
char c1 = word.charAt(i);
int n = (int) c1; // 숫자(아스키코드)로 변경
if(n>=97) { // 97(a) - 65(A) = 32
n = n - 32;
}
result = result + (char)n;
}
System.out.println(result);