字符串在.NET中项目中非常常用。关于String的介绍就不多说了。
背景:今天和同事讨论一个问题,。
问题描述:一段字符串,去除字符串中小括号中的内容,小括号可能有嵌套情况。
解决思路:1、先去除最内层的小括号;2、进行完第一步之后得到新的字符串,再执行第一步。3、直到最后没有括号。
代码:
private static string DeleteTemp(string name) { for (int i = 0; i < name.Length; i++) { if (name[i].Equals(‘)‘)) { int firstIndex = name.IndexOf(name[i]); //替换掉一个内层括号 string subString = name.Substring(0, firstIndex + 1); int index = subString.LastIndexOf(‘(‘); string tempString = subString.Substring(index); subString = subString.Replace(tempString, ""); string dd = subString + name.Substring(firstIndex + 1); name = DeleteTemp(dd); } } return name; }
测试示例:
string name = "110kV1#母分开关由运行改热备用(110kV1#母分备自投由信号改跳闸(1区),110kV1#母分保护由跳闸改信号(1区))"; var s = DeleteTemp(name); Console.WriteLine(s);
输出结果:应该输出“110kV1#母分开关由运行改热备用”
结果确实输出了“110kV1#母分开关由运行改热备用”
总结:1、使用了String的IndexOf、LastIndexOf、SubString、Replace等函数;
2、运用了递归调用。
时间: 2024-10-15 10:03:02