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)的'的声明;'是不会做任何有用,因为你没有使用返回值... –