사용자 정의 형식 문자열을 사용하여 int / long으로 문자열 구문 분석
-
13-11-2019 - |
문제
C # .NET에서는 사용자 정의 형식 문자열을 사용하여 문자열에 숫자를 형식화하는 방법의 간단한 예입니다. ( "Noofollow"> http://www.csharp-examples.net/string-int.-int / )
String.Format("{0:+### ### ### ###}", 447900123456); // "+447 900 123 456"
String.Format("{0:##-####-####}", 8958712551); // "89-5871-2551"
.
이 형식화 된 문자열을 다시 / 정수로 다시 변환하는 방법이 있습니까?이 작업을 수행 할 수 있습니다 :
long PhoneNumber = Int32.Parse("89-5871-2551", "{0:##-####-####}");
.
DateTime 이이 작업을 잘 수행 할 수있는 ParseExact 메소드를 보았습니다.그러나 나는 int / long / decimal / double에 대한 어떤 것들을 보지 못했습니다.
해결책
숫자가 아닌 모든 문자를 모두 regex로 꺼낸 다음 해당 문자열을 구문 분석합니다.
다른 팁
모든 숫자 숫자가 아닌 모든 숫자를 정규 처리 할 수 있으며, 왼쪽으로 남아있는 것은 당신이 구문 분석 할 수있는 숫자 문자열입니다.
var myPhoneNumber = "89-5871-2551";
var strippedPhoneNumber = Regex.Replace(myPhoneNumber, @"[^\d]", "");
int intRepresentation;
if (Int32.TryParse(strippedPhoneNumber, out intRepresentation))
{
// It was assigned, intRepresentation = 8958712551
// now you can use intRepresentation.
} else {
// It was not assigned, intRepresentation is still null.
}
. 항상 를 할 수 있습니다.
long PhoneNumber = Int32.Parse("89-5871-2551".
Replace(new char[]{'-','+',whatever..}).Trim());
.
일부 IO
에서 수신 된 문자열을 구문 분석하고 있음을 고려할 때, 나는 더 안전한 (변환 측면에서) int32.tryparse 메소드
과 같은 방식은 실제로 존재하지 않습니다.
제휴하지 않습니다 StackOverflow