从字符串
回答
阅读最后3点从字符串中的字符[开始问问题]
您可以使用string.Substring,并给它的起始索引,它会得到从子给定索引,直到年底开始。
myString.Substring(str.Length-3)
检索从这个实例子。子字符串从 指定的字符位置开始。 MSDN
编辑,为更新后
从字符串删除最后3个字符[更新问题]
到最后有3个字符的字符串中删除您可以使用string.Substring(Int32, Int32),并给它开始索引0
和结束索引三个小于那么字符串长度。它会在最后三个字符之前得到子字符串。
myString = myString.Substring(0, str.Length-3);
String.Substring Method (Int32, Int32)
检索从这个实例子。子字符串起始于 指定的字符位置并具有指定的长度。
您也可以使用String.Remove(Int32)方法通过传递开始指数长度,以便除去最后三个字符 - 3,它会从这个角度删除结束的字符串。
myString = myString.Remove(myString.Length-3)
返回其当前 实例中的所有角色,开始在指定的位置,并通过 最后一个位置继续,已被删除一个新的字符串
myString = myString.Remove(myString.Length - 3, 3);
myString.Remove(myString.Length-3);
'myString = myString.Remove(myString.Length - 3)'即是。 – 2017-06-09 20:42:54
str= str.Remove(str.Length - 3);
您可以使用String.Remove
从指定位置删除到字符串末尾。
myString = myString.Remove(myString.Length - 3);
string myString = "abcdxxx";
if (myString.Length<3)
return;
string newString=myString.Remove(myString.Length - 3, 3);
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
我经历了所有这些阅读,但想要的东西多一点优雅。
string.Concat("hello".Reverse().Skip(3).Reverse());
输出:
"he"
这个是非常“有创意”的,因为它不需要字符串的长度,但是反向操作可能更昂贵。 – Casper 2017-04-07 09:12:13
反转字符串肯定比计算其字符更昂贵。需要构造一个全新的字符串,然后将原始字符串复制到它,然后原始字符串需要被垃圾回收。 – 2017-04-24 16:26:41
@MattGregory字符串是不可变的:Remove,Substring,任何字符串函数都会生成一个新的字符串。覆盖原始指针始终会导致垃圾回收。尽管如此,由于'Enumerable.Reverse'将字符串缓存到'char []'中,然后缓存到一个新的'char []'中,并且生成一个新的'string'(内部是另一个'炭[]')。一个更好的方法是'new string(“hello”.Reverse()。Skip(3))',或者直接编写自己的使用Substring的字符串扩展函数'AllBut(this string in,int i)'。 – Wolfzoon 2018-01-11 10:38:36
从字符串中删除最后一个字符
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)
//以前只是从字符串的结尾去掉了一定数目的字符删除从索引10开始的文本结束
读取最后3个字符=一件事,删除最后3个字符=另一个。哪一个? – 2013-03-22 07:40:53