从字符串中删除最后三个字符

本文关键字:三个 字符 字符串 删除 最后 | 更新日期: 2023-09-27 18:05:20

我想从字符串中删除最后三个字符:

string myString = "abcdxxx"; 

请注意,该字符串是动态数据。

从字符串中删除最后三个字符

从字符串中读取最后 3 个字符 [最初提出的问题]

您可以使用字符串。子字符串并给它起始索引,它将获得从给定索引开始到结束的子字符串。

myString.Substring(myString.Length-3)

从此实例中检索子字符串。子字符串从 指定的字符位置。MSDN

编辑,用于更新的帖子

从字符串中删除最后 3 个字符 [更新的问题]

要从字符串中删除最后三个字符,您可以使用字符串。子字符串(Int32, Int32( 并为其提供起始索引 0 和结束索引 3 小于字符串长度。它将在最后三个字符之前获取子字符串。

myString = myString.Substring(0, myString.Length-3);

String.Substring Method (Int32, Int32(

从此实例中检索子字符串。子字符串从 指定的字符位置并具有指定的长度。

您还可以使用 String.Remove(Int32( 方法通过将起始索引作为长度 - 3 传递来删除最后三个字符,它将从这一点删除到字符串的末尾。

myString = myString.Remove(myString.Length-3)

字符串删除方法 (int32(

返回一个新字符串,其中当前 实例,从指定位置开始并继续到 最后一个位置,已被删除

myString = myString.Remove(myString.Length - 3, 3);

我通读了所有这些,但想要一些更优雅的东西。 只是为了从字符串末尾删除一定数量的字符:

string.Concat("hello".Reverse().Skip(3).Reverse());

输出:

"he"

新的 C# 8.0 范围运算符可能是实现此目的的绝佳快捷方式。

示例 #1(回答问题(:

string myString = "abcdxxx";
var shortenedString = myString[0..^3]
System.Console.WriteLine(shortenedString);
// Results: abcd

示例 #2(向您展示范围运算符有多棒(:

string s = "FooBar99";
// If the last 2 characters of the string are 99 then change to 98
s = s[^2..] == "99" ? s[0..^2] + "98" : s;
System.Console.WriteLine(s);
// Results: FooBar98
myString.Remove(myString.Length-3);
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd

如果你使用的是 C# 8 或更高版本,则可以使用"ranges":

string myString = "abcdxxx";
string trimmed = myString[..^3]; // "abcd"

更多示例:

    string test = "0123456789", s;
    char c;
    c = test[^3]; // '7'
    s = test[0..^3]; // "0123456"
    s = test[..^3]; // "0123456"
    s = test[2..^3]; // "23456"
    s = test[2..7]; // "23456"
    //c = test[^12]; // IndexOutOfRangeException
    //s = test[8..^3]; // ArgumentOutOfRangeException
    s = test[7..^3]; // string.Empty
可以使用

String.Remove从指定位置删除到字符串末尾。

myString = myString.Remove(myString.Length - 3);

可能不完全是您要找的,因为您说它是"动态数据",但给定您的示例字符串,这也可以工作:

? "abcdxxx".TrimEnd('x');
"abc"

str= str.Remove(str.Length - 3);

容易。 text = text.remove(text.length - 3) . 我减去 3,因为 Remove 函数从该索引中删除所有项目到text.length字符串的末尾。因此,如果我减去 3,那么我会得到从中删除 3 个字符的字符串。

您可以将其推广为从字符串末尾删除a字符,如下所示:

text = text.remove(text.length - a) 

所以我所做的是同样的逻辑。remove 函数从其内部到字符串末尾(即文本的长度(删除所有项目。因此,如果我从字符串的长度中减去a,这将给我删除a个字符的字符串。

所以它不仅适用于 3,它适用于所有正整数,除非字符串的长度小于或等于 a ,在这种情况下,它将返回负数或 0。

myString.Substring(myString.Length - 3, 3)

以下是有关子字符串的示例>>

http://www.dotnetperls.com/substring

参考这些。

   string myString = "abcdxxx";
   if (myString.Length<3)
      return;
   string newString=myString.Remove(myString.Length - 3, 3);

从字符串中删除最后几个字符

TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)

.Text.Remove(10)//用于删除从索引 10 到结尾的文本

items.Remove(items.Length - 3)

string.Remove()从该索引中删除所有项目到末尾。 items.length - 3从末尾获取索引 3 个字符

您可以调用 Remove 方法并传递最后 3 个字符

str.Substring(str.Length-3)

完整的代码可以是

str.Remove(str.Substring(str.Length-3));