[英]how write C# Recursion method?
我想使用C# Recursion
編寫以下for循環,請指導我。 謝謝 !
StringMobileNo = value.ToString();
for (int i = 0; i < 3; i++)
{
if (StringMobileNo.StartsWith("0"))
{
StringMobileNo = StringMobileNo.Remove(0, 1);
}
}
如果要遞歸刪除前導零,可以執行以下操作:
public string RemoveZeroes(string input)
{
if (!input.StartsWith("0"))
return input;
return RemoveZeroes(input.Remove(0, 1));
}
一個解釋:
這將導致該方法重復執行,直到最后沒有前導零為止,這時返回的字符串(除去所有前導零)將一直返回到整個調用堆棧。
然后像這樣調用:
var myString = RemoveZeroes(StringMobileNo);
但是,只需執行以下操作即可達到相同目的:
StringMobileNo.TrimStart('0');
請注意,我在這里假設i < 3
條件是任意退出條件,並且您實際上要刪除所有前導零。 這是讓您指定要刪除的數量的一種:
public string RemoveZeroes(string input, int count)
{
if (count < 1 || !input.StartsWith("0"))
return input;
return RemoveZeroes(input.Remove(0, 1), count - 1);
}
您根本不需要遞歸。
而是使用TrimStart
刪除所有前導0
StringMobileNo.TrimStart('0')
我認為您不需要在這里使用Recursion
功能。
您可以使用String.TrimStart("0")
但如果要使用Recursion
函數
嘗試這個:
class Program
{
static void Main(string[] args)
{
Recursion("000012345",0);
}
static void Recursion(string value,int c)
{
String MobileNo = value;
int count=c;
if (MobileNo.StartsWith("0") && count<3)
{
count++;
Recursion(MobileNo.Remove(0, 1),count);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.