सी # का उपयोग कर यूएस फोन प्रारूप [(XXX) XXX-XXXX] का उपयोग कर स्ट्रिंग को प्रारूपित करने का सबसे तेज़ तरीका क्या है?सी # में एक फोन नंबर प्रारूपित करने का सबसे तेज़ तरीका?
मेरा स्रोत प्रारूप एक स्ट्रिंग है।
सी # का उपयोग कर यूएस फोन प्रारूप [(XXX) XXX-XXXX] का उपयोग कर स्ट्रिंग को प्रारूपित करने का सबसे तेज़ तरीका क्या है?सी # में एक फोन नंबर प्रारूपित करने का सबसे तेज़ तरीका?
मेरा स्रोत प्रारूप एक स्ट्रिंग है।
String.Format("{0:(###) ###-#### x ###}", double.Parse("1234567890123"))
(123) 456-7890 एक्स 123
मैं ग्रहण करेंगे यह होगा:
var number = string.Format("({0}) {1}-{2}", oldNumber.Substring(0, 3), oldNumber.Substring(3, 3), oldNumber.Substring(6));
यह मानता है कि आप "1234567890" के रूप में जमा संख्या है और यह होना चाहता हूँ "(123) 456-7890"।
यह मानता है कि आप की तरह संग्रहीत अंक की उचित संख्या के साथ फोन नंबर है:
string p = "8005551234";
string formatedPhoneNumber = string.Format("({0}) {1}-{2}", p.Substring(0, 3), p.Substring(3, 3), p.Substring(6, 4));
में परिणाम होगा यह एक ले जाएगा स्ट्रिंग उदाहरण "246 1377801"
के लिए दस अंक किसी भी तरह से स्वरूपित, या यहाँ तक ">> Phone:((246)) 13 - 778 - 01 <<"
युक्त, और प्रारूप यह "(246) 137-7801"
के रूप में:
string formatted = Regex.Replace(
phoneNumber,
@"^\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*$",
"($1$2$3) $4$5$6-$7$8$9$10");
(स्ट्रिंग वास्तव में दस अंक शामिल नहीं है, तो आप मूल स्ट्रिंग में कोई बदलाव नहीं मिलता है।)
संपादित करें: एक स्ट्रिंग का निर्माण करने के
एक तेज तरीके एक StringBuilder उपयोग करने के लिए है। अंतिम स्ट्रिंग की सटीक लंबाई की क्षमता को सेट करके आप बिना किसी रद्दीकरण के एक ही स्ट्रिंग बफर के साथ काम करेंगे, और ToString विधि बफर को अंतिम स्ट्रिंग के रूप में वापस कर देगी।
मतलब यह है कि स्रोत स्ट्रिंग केवल दस अंक शामिल हैं:
string formatted =
new StringBuilder(14)
.Append('(')
.Append(phoneNumber, 0, 3)
.Append(") ")
.Append(phoneNumber, 3, 3)
.Append('-')
.Append(phoneNumber, 6, 4)
.ToString();
हाँ ... कैप्चरिंग/प्रतिस्थापन करने के लिए गैर-अंकों को पट्टी करने के लिए केवल 1 रेगेक्स क्यों नहीं चलाएं? तेज़ नहीं होगा लेकिन यह हेला क्लीनर होगा। –
क्या अपने स्रोत प्रारूप? एक और स्ट्रिंग? सादे संख्या, अन्य पात्र नहीं? – bendewey