সি # ব্যবহার করে স্ট্রিংগুলিতে শীর্ষস্থানীয় জিরোগুলি কীভাবে সরিয়ে ফেলবেন?
নিম্নলিখিত সংখ্যাগুলিতে উদাহরণস্বরূপ, আমি সমস্ত নেতৃস্থানীয় শূন্যগুলি সরাতে চাই।
0001234
0000001234
00001234
সি # ব্যবহার করে স্ট্রিংগুলিতে শীর্ষস্থানীয় জিরোগুলি কীভাবে সরিয়ে ফেলবেন?
নিম্নলিখিত সংখ্যাগুলিতে উদাহরণস্বরূপ, আমি সমস্ত নেতৃস্থানীয় শূন্যগুলি সরাতে চাই।
0001234
0000001234
00001234
উত্তর:
উপরের কয়েকটি (বিশেষত যেগুলি ইন্টারএক্সএক্সের মাধ্যমে রূপান্তরিত হয়) পদ্ধতিগুলির জন্য কাজ করবে না, এটি এনভিচারচার কতটা দীর্ঘ তার উপর নির্ভর করে:
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";বা অনুরূপ
ট্রাই পার্সে যদি আপনার নম্বরটি ইন্টার 32.MaxValue এর চেয়ে কম হয় তবে কাজ করে । এটি আপনাকে খারাপ ফর্ম্যাট করা স্ট্রিংগুলি পরিচালনা করার সুযোগ দেয়। Int64.MaxValue এবং Int64.TryParse এর জন্য একই কাজ করে ।
int number;
if(Int32.TryParse(nvarchar, out number))
{
// etc...
number.ToString();
}
এই রেজেক্স আপনাকে এমন অঙ্কগুলির সাথে ভুল ফলাফল এড়াতে দেয় যা কেবল "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");