簡體   English   中英

格式化以0開頭的電話號碼

[英]Format phone number which starts by 0

我知道美國的電話號碼都不以0開頭。 如果有人輸入像這樣的電話號碼0237858585,我想將其格式化為(023)785-8585。

當前,我正在使用PhoneNumberFormatted = $"{int.Parse(PhoneNumber):(###) ###-####}"; 格式化在上述情況下不起作用的電話號碼。 顯示為(23)785-8585

有人可以幫忙嗎?

正如我在評論中說的那樣,您需要考慮將這些值視為字符串,因為將其轉換為數字會丟失前導零(如果有的話)。

假設您的電話號碼精確到10位數字,則可以使用以下代碼。

var phoneNumber = "0237858585";
var formattedNumber = $"({phoneNumber.Substring(0,3)}) {phoneNumber.Substring(3,3)}-{phoneNumber.Substring(6)}";
Console.WriteLine(formattedNumber);

您可以有條件地使用此邏輯,例如,如果數字以“ 0”開頭,則可以使用此邏輯,否則您可以使用當前使用的常規格式。

嘗試這個 :

String.Format("{0:(0##) ###-####}", 237858585); // Displays (023) 785-8585

格式化數字時,使用“#”將刪除前導零。 如果要保留前導零,請將“ 0”用作可能為零的前導數字的占位符。

注意:“ 0”表示顯示數字,如果有一位,則顯示“ 0”。 這並不意味着在字符串的開頭放置文字“ 0”。

var PhoneNumber = "0237858585";
Console.WriteLine($"{int.Parse(PhoneNumber):(0##) ###-####}");
//Output will be "(023) 785-8585"

PhoneNumber = "237858585";
Console.WriteLine($"{int.Parse(PhoneNumber):(0##) ###-####}");
//Output will be "(023) 785-8585"

PhoneNumber = "1237858585";
Console.WriteLine($"{int.Parse(PhoneNumber):(0##) ###-####}");
//Output will be "(123) 785-8585"

PhoneNumber = "1237858585";
Console.WriteLine($"{int.Parse(PhoneNumber):(000) 000-0000}");
//Output will be "(123) 785-8585"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM