Мне нужно удалить подстроку в строке. Мне нужно удалить строку, начиная с определенного символа, до другого символа. Это мой код:Почему рекурсия не работает?
[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);' не собирается делать ничего полезного , потому что вы не используете возвращаемое значение ... –