티스토리 뷰

LeetCode 문제 풀이 중 문자열로 구성된 배열(List)에서 꺼낸 문자열이 숫자인지 여부를 판별하기 위해 고민하던 중 찾아봤다.

 

1. 아스키 코드(ASCII)

: 가장 떠오른 방법이다. 이 방법은 0부터 9까지, 즉 한 자리 숫자만 판별이 가능하다는 한계가 있다. 숫자를 따옴표 안에 넣어 직관적으로 조건문을 선언해도 되고 각각 숫자 0과 9의 아스키 코드 값인 48과 57로 선언해도 된다. 아래는 임의의 문자열 변수(string)를 통한 예다.

if "0" <= string and string <= "9"
if 48 <= string and string <= 57

2. isdigit()

: 해당 문자열의 모든 문자가 숫자면 True를 아니면 False를 반환한다. 따라서 음수 형태나 소수 형태는 판별이 불가하다.

print("1".isdigit())
print("-1".isdigit())
print("1.1".isdigit())

실행 결과:

True

False

False

 

3. isnumeric()

: 해당 문자열의 문자 중 숫자가 하나라도 포함됐으면 True를 아니면 False를 반환한다. 마찬가지로 음수 형태나 소수 형태는 판별이 불가하다.

print("1".isnumeric())
print("-1".isnumeric())
print("1.1".isnumeric())

실행 결과:

True

False

False

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
반응형