는 "어떻게이 문자열이 유효한 스웨덴어 우편 번호가 포함되어있는 경우 결정합니까?" 스웨덴 우편 번호는 0으로 시작하지 않는 다섯 자리 숫자입니다. 그게 실제로 해결해야하는 문제라면 이 문제를 해결합니다.
- 다섯 자 문자열은 다음과 같습니다 오히려 문자열을 정수로 변환하고 정수, 나는 단순히 말할 수표를 것을 확인하는 것보다? 그렇지 않은 경우 거부하십시오.
- 은 1, 2, 3, 4, 5, 6, 7, 8 또는 9 문자열의 첫 번째 문자입니까? 그렇지 않은 경우 거부하십시오.
- 은 문자열 0, 1, 2, 3, 4, 5, 6, 7, 8 또는 9의 두 번째, 세 번째, 그렇지 않은 경우 거부하십시오.
간단합니다. 만약 당신이 수학을 결코하지 않으려한다면, 그것을 정수로 변환하지 마십시오.
이 접근법은 더 복잡한 형태로 일반화됩니다. 스웨덴 우편 번호는 "SE-12 345"라는 접두사가 붙은 형태로 쓰여지며 두 자리와 세 자리 사이에 공백이 붙습니다. 이 형식을 다루는 정수 검증 루틴을 작성하는 것은 대단히 어렵지만 문자열 검증 루틴을 작성하는 것은 간단합니다.
보다 일반적으로 이것은 질문을 작성하기위한 좋은 조언을 보여줍니다. 실제로 해결해야하는 문제에 대해 질문하십시오. 문자열을 정수로 구문 분석 한 솔루션을 가정 한 다음 가정 한 솔루션에 대한 질문을하기 시작했습니다. 이는 자동적으로 누군가가 귀하의 실제 문제와 관련된 조언을하지 못하게합니다. 어쩌면 이것을 읽는 누군가는 이미 우편 번호 확인 소프트웨어 라이브러리를 개발했다. 그들이 가지고 있다면, 그들은 원래의 질문에서 그것에 대해 당신을 말할 줄 몰랐어.
정수로 무엇을 의미합니까? 비영어권? – Aliostad
int를 선언하기 전에 어떤 문제가 있습니까? 물론 숫자만으로 입력을 검증하기 위해 regexp를 작성할 수는 있지만 int.TryParse보다 비싸다고 생각합니다. – VikciaR
입력이 문자열입니까? –