0
我需要刪除字符串中的一個子字符串。我需要刪除從特定字符開始的字符串,直到另一個字符。這是我的代碼:爲什麼遞歸不起作用?
[Test]
public static void TestDeleteSign()
{
var s = "РасчНал[]{@ТипНП}/РасчНалГруп[]{@СубРФ}/@ДоляНалБаз";
var result = DeleteSignature(s);
var acceptResult = "РасчНал/РасчНалГруп/@ДоляНалБаз";
Assert.AreEqual(acceptResult, result);
}
public static string DeleteSignature(string s)
{
if (s.Contains("[]{"))
{
var firstEntry = s.IndexOf("[]{");
var closeEntry = s.IndexOf('}');
s = s.Remove(firstEntry, closeEntry - firstEntry + 1);
DeleteSignature(s);
}
return s;
}
結果是:
Expected: "РасчНал/РасчНалГруп/@ДоляНалБаз"
But was: "РасчНал/РасчНалГруп[]{@СубРФ}/@ДоляНалБаз"
而當您運行該代碼時會發生什麼?當你研究這個問題時你發現了什麼? – Sayse
預計: 「РасчНал/РасчНалГруп/ @ДоляНалБаз」 不過是: 「РасчНал/РасчНалГруп[] {@СубРФ}/@ДоляНалБаз」 –
提示:DeleteSignature(S)的'的聲明;'是不會做任何有用,因爲你沒有使用返回值... –