-
[개발] Editing 프로그램 개발 에피소드_string 내에서 사칙연산 구분하기전공/자동화 프로그램 2021. 1. 26. 21:24
[ 퀴즈 ]
'*, /, +, -, (, )' 기호가 들어 있는 string 식에서 연산자/기호와 피연산자를 어떻게 구분해서 배열에 담을 수 있을까?
예를 들어, before과 같은 연산 수식이 있을 때 after 처럼 연산자를 구분하여 배열에 넣는 것
(before)
SQ1*10+SQ2/2+3
(after)
SQ1 * 10 + SQ2 / 2 + 3 문자열 하나씩 돌며 비교해야 하나 등등 생각하다가 생각한 방법.
소위 잔머리 방법이닷 ㅎㅎ
[ SOL ]기호의 양 옆에 공백을 넣고 공백 기준으로 배열에 담는다.
eg. SQ1*10+SQ2/2+3
1단계. 기호 기준으로 공백 넣기
SQ1 * 10 + SQ2 / 2 + 3
2단계. 공백 기준으로 배열에 담기
SQ1 * 10 + SQ2 / 2 + 3 Dim fourstr() As String Dim c As String <!--1단계: 기호 양 옆에 space 넣기 --> c = "SQ1*10+SQ2/2+3" c = Replace(c, "*", " * ") c = Replace(c, "/", " / ") c = Replace(c, "+", " + ") c = Replace(c, "-", " - ") c = Replace(c, "(", " ( ") c = Replace(c, ")", " ) ") <!--기호가 연속으로 2번 나오는 경우를 위해 공백이 2개 일때는 하나로 바꿔주기. eg.SQ1*10+(2*3)+SQ2/2+3 --> c = Replace(c, " ", " ") <!--2단계: 공백 기준으로 배열에 넣기 --> fourstr = Split(c, " ")
야매로(?) 해결 ㅎㅎ
아이디어가 넘 웃겨서 혼자 개발하며 빵터짐 ㅋㅋ'전공 > 자동화 프로그램' 카테고리의 다른 글
[Python] 여러개의 Excel / CSV 파일 내 vba 매크로를 순차적으로 실행하기 (2) 2020.09.26 장기요양 급여제공계획서 list 자동화 프로그램 (0) 2020.09.15