C#字符串操作-从:Hello.Test.Trash到Hello.Test

本文关键字:Hello Test Trash 字符串 操作 | 更新日期: 2023-09-27 18:21:46

我得到了一个字符串:

  • "Hello.Test.Trash"

"Hello.Test.Computer.Trash"

"Haha.Yeah.Space.Car.Trash"

我希望能够删除最后一个单词"垃圾",它总是一样的,包括前面的点:

"Hello.Test"
"Hello.Test.Computer"
"Hello.Yeah.Space.Car"

最好/最干净的方法是什么?

C#字符串操作-从:Hello.Test.Trash到Hello.Test

如果末尾只有一个'.Trash':

string value = "Hello.Test.Trash";
string notrash = value.Replace(".Trash","");
// notrash = "Hello.Test"

如果'.Trash'也可以在字符串的中间,并且您不想替换它:

string value = "Hello.Trash.Test.Trash";
string notrash = Regex.Replace(value, @"'.Trash$", "");
// notrash = "Hello.Trash.Test"
myString = myString.Substring(0,myString.Length - "Trash".Length)

我会非常小心地使用replace,因为这会两次替换这个字符串中的垃圾:

I.trash.in.trash

获得"I.in"

删除所有.RTrash实例(包括中间)

var resultString = inputString.Replace(".Trash", String.Empty);

如果你100%确定最后一组字符将是"Trash",并且你只想删除最后一次出现的字符,那么你也可以使用

var resultString = inputString.SubString(0, inputString.Lenght - 6); //6 is lenght of .Trash

如果Trash只在字符串中出现一次,则有两个选项:

string s = "Hello.Test.Trash";
string s1 = s.Replace(".Trash", string.Empty);
string s2 = s.Remove(s.IndexOf(".Trash"));