기타

문자열이 숫자인지 알파벳인지 확인하기

sm_hope 2022. 6. 19. 18:27

파이썬

isalpha(), isdigit(), isalnum() 등 문자열이 어떤 구성인지 확인하는 내장함수가 있다.

순서대로 문자열이 문자일 경우, 숫자일경우, 문자혹은숫자일 경우 이다.

반환은 True,False로 이루어진다.

A = "12"
B = "aa"
C = "a1"

print("==== isalpha() ====") #알파벳이냐
print(A.isalpha())
print(B.isalpha())
print(C.isalpha())
print("==== isdigit() ====") #숫자냐
print(A.isdigit())
print(B.isdigit())
print(C.isdigit())
print("==== isalnum() ====") #알파벳 혹은 숫자냐
print(A.isalnum())
print(B.isalnum())
print(C.isalnum())

# 출력결과
==== isalpha() ====
False
True
False
==== isdigit() ====
True
False
False
==== isalnum() ====
True
True
True

자바스크립트

isNaN() 알파벳인지 확인해준다. (숫자와 알파벳이 같이 있을 경우에 true를 반환한다.)

let a = "1"
let b = "a"
let c = "1a"

console.log(isNaN(a))
console.log(isNaN(b))
console.log(isNaN(c))

//출력결과
false
true
true

자바

자바스크립트, 파이썬의 경우에는 문자열이 숫자인지 아닌지 판별해 주는 내장함수가 있다.
자바도 isDigit()라는 내장함수를 제공하지만 문자열이 아닌 문자를 판별해 준다.
따라서 isDigit()보다는 예외를 이용하는게 더 좋다고 생각한다.

		String quiz = br.readLine();
			try { // 받은 값이 숫자일 경우
				Integer.parseInt(quiz);
				sb.append(PokemonDoGam_num.get(quiz)).append("\n");
			}
			catch(Exception e){
				sb.append(PokemonDoGam_str.get(quiz)).append("\n");
			}

문자열이 숫자인경우 Integer.parseInt()를 무난히 통과하지만 그렇지 않을 경우 예외가 발생한다.