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("숫자가 아닙니다.");		// 숫자가 아닌 경우
}

아스키코드 출처 https://shaeod.tistory.com/228

 

// 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);