Tôi đang cố gắng tạo ra một chức năng định dạng số điện thoại của Mỹ - hy vọng không lặp qua từng chữ số.String.Format số điện thoại với phần mở rộng
Khi 10 chữ số được chuyển thì tất cả đều ổn. Làm thế nào bao giờ khi hơn 10 chữ số được thông qua trong Tôi muốn phương pháp String.Format để nối thêm các chữ số mở rộng ở bên phải. Ví dụ:
Khi 14 chữ số được thông qua vào kết quả nên là: (444) 555-2222 x8888 Khi 12 chữ số được thông qua vào kết quả nên là: (444) 555-2222 x88 , vv Tuy nhiên những gì tôi nhận được với nỗ lực hiện tại của tôi là: Việc trả về 12 chữ số sẽ trả về chuỗi này '() -949 x555444433'
đây là những gì tôi có cho đến nay.
public static string _FormatPhone(object phonevalue)
{
Int64 phoneDigits;
if (Int64.TryParse(phonevalue.ToString(), out phoneDigits))
{
string cleanPhoneDigits = phoneDigits.ToString();
int digitCount = cleanPhoneDigits.Length;
if (digitCount == 10)
return String.Format("{0:(###) ###-####}", phoneDigits);
else if (digitCount > 10)
return String.Format("{0:(###) ###-#### x#########}", phoneDigits);
else
return cleanPhoneDigits;
}
return "Format Err#";
}
Xin cảm ơn trước.
Ok, nhưng nếu bạn định đi xuống đường dẫn Substring, tại sao lại dừng ở đó? –
Điều này có vẻ thẳng về phía trước đủ. else if (phoneDigitString.Length> 10) { trở String.Format ( "({0}) {1} - {2} x {3}", phoneDigitString.Substring (0, 3), phoneDigitString.Substring (3, 3), phoneDigitString.Substring (3, 4), phoneDigitString.Substring (10)); } – ChiliYago
Đó là cược an toàn cho rằng cách chuỗi con sẽ nhanh hơn. –