删除字符串的某个部分

时间:2013-02-15 22:23:33

标签: c# string

有三种字符串:

  • 串(1)_2013-02-15
  • anotherString(2)_2013-02-15
  • yetAnotherString(3)_2013-02-15

直到左括号,每个字符串都是常量。括号之间的数字将改变,所有三个字符串的长度可以是一个,两个或三个字符。日期将是当天的日期。

我想删除括号和它们之间的数字。期望的结果如下:

  • string_2013-02-15
  • anotherString_2013-02-15
  • yetAnotherString_2013-02-15

任何帮助都将不胜感激。

7 个答案:

答案 0 :(得分:2)

string MyString = "string(1)_2013-02-15";
int firstParenIndex = MyString.IndexOf("(");
int secondParenIndex = MyString.IndexOf(")");
string String1 = MyString.Substring(0,firstParenIndex);
string String2 = MyString.Substring(seconParenIndex+1);
string finalString = String1 + String2;

答案 1 :(得分:2)

使用普通String方法:

int leftBrace =  str1.IndexOf('(');
int rightBrace = str1.IndexOf(')', leftBrace);
str1 = str1.Remove(leftBrace, rightBrace - leftBrace + 1);

DEMO

答案 2 :(得分:2)

var input = "string(1)_2013-02-15";
var result = Regex.Replace(input, "\\([0-9]+\\)", string.Empty);

答案 3 :(得分:1)

您可以使用string.split('(')并删除该方式,例如,如果您知道只有一组括号:

public string RemoveBrackets(string Message)
{
    string temp1 = Message.Split('(')[0];
    string temp2 = Message.Split(')')[1];
    string newMessage = temp1 + temp2;
    return newMessage;
}
无论如何,这样的东西:)

答案 4 :(得分:0)

试试这个:

int index1 = test2.IndexOf('(');
int index2 = test2.LastIndexOf(')', index1 + 1);
string result2 = test2.Remove(index1, index2 - index1);

答案 5 :(得分:0)

考虑到9999年的日期部分的长度,这足够远,你可以通过减少一个电话来优化你的代码(找到第二个括号的位置如下:

string s = "something(123)_2013-02-16";
string result = s.Substring(0, s.IndexOf("(")) + s.Substring((s.Length - 11), 11);

答案 6 :(得分:0)

即使字符串的第一部分包含Substring() 和/或 LastIndexOf(),也可以使用()方法。

string s = "string(1)_2013-02-15";
s = s.Substring(0, s.LastIndexOf('(')) + s.Substring(s.LastIndexOf(')')+1);