जवाबों:
यह वास्तव में निर्भर करता है कि NVARCHAR कब तक है, उपरोक्त में से कुछ के रूप में (विशेष रूप से जो IntXX के माध्यम से परिवर्तित होते हैं) विधियों के लिए काम नहीं करेंगे:
String s = "005780327584329067506780657065786378061754654532164953264952469215462934562914562194562149516249516294563219437859043758430587066748932647329814687194673219673294677438907385032758065763278963247982360675680570678407806473296472036454612945621946";
ऐसा कुछ होगा
String s ="0000058757843950000120465875468465874567456745674000004000".TrimStart(new Char[] { '0' } );
// s = "58757843950000120465875468465874567456745674000004000"
strInput= "0000000";या समान समस्याग्रस्त । क्योंकि यह एक शून्य के बजाय एक खाली स्ट्रिंग लौटाएगा।
"0"ट्रिम के बाद खाली होने पर वापस किया जा सकता है । या उपयोग कर रहे हैं PadLeft(1, '0')।
यह वह कोड है जिसकी आपको आवश्यकता है:
string strInput = "0001234";
strInput = strInput.TrimStart('0');
strInput= "0000000";या समान
strInput.TrimStart('0').PadLeft(1, '0');संभाल लेंगे "0000" > "0"।
खाली स्ट्रिंग वापस करने से बचने के लिए कोड (जब इनपुट "00000" जैसा हो)।
string myStr = "00012345";
myStr = myStr.TrimStart('0');
myStr = myStr.Length > 0 ? myStr : "0";
return numberString.TrimStart('0');
numberString= "0000000";या समान
यदि आपका नंबर Int32.MaxValue से कम है, तो TryParse काम करता है । यह आपको बुरी तरह से स्वरूपित तारों को संभालने का अवसर भी देता है। Int64.MaxValue और Int64.TryParse के लिए समान काम करता है ।
int number;
if(Int32.TryParse(nvarchar, out number))
{
// etc...
number.ToString();
}
यह Regex आपको अंकों के गलत परिणाम से बचने देता है जो केवल "0000" शून्य से और किसी भी अंक के अंकों पर काम करते हैं:
using System.Text.RegularExpressions;
/*
00123 => 123
00000 => 0
00000a => 0a
00001a => 1a
00001a => 1a
0000132423423424565443546546356546454654633333a => 132423423424565443546546356546454654633333a
*/
Regex removeLeadingZeroesReg = new Regex(@"^0+(?=\d)");
var strs = new string[]
{
"00123",
"00000",
"00000a",
"00001a",
"00001a",
"0000132423423424565443546546356546454654633333a",
};
foreach (string str in strs)
{
Debug.Print(string.Format("{0} => {1}", str, removeLeadingZeroesReg.Replace(str, "")));
}
और यह रेगेक्स स्ट्रिंग के अंदर कहीं भी अग्रणी शून्य को हटा देगा:
new Regex(@"(?<!\d)0+(?=\d)");
// "0000123432 d=0 p=002 3?0574 m=600"
// => "123432 d=0 p=2 3?574 m=600"
इनपुट 0 सभी होने पर निम्न का उपयोग करके एक एकल 0 वापस आएगा।
string s = "0000000"
s = int.Parse(s).ToString();
Regex rx = new Regex(@"^0+(\d+)$");
rx.Replace("0001234", @"$1"); // => "1234"
rx.Replace("0001234000", @"$1"); // => "1234000"
rx.Replace("000", @"$1"); // => "0" (TrimStart will convert this to "")
// usage
var outString = rx.Replace(inputString, @"$1");