我有这样的字符串:
var a = "abcdefg";
var b = "xxxxxxxx";
字符串总是超过五个字符。
现在我需要修剪最后3个字符。有没有一些简单的方法可以用C#做到这一点?
答案 0 :(得分:11)
在琐碎的情况下,你可以使用
result = s.Substring(0, s.Length-3);
从字符串中删除最后三个字符。
或者Jason建议Remove
是另一种选择:
result = s.Remove(s.Length-3)
不幸的是,对于unicode字符串,可能存在一些问题:
char
,因为字符串的编码是UTF-16(参见代理对)。这仅发生在基本平面之外的字符,即具有代码点> 2 ^ 16的字符。如果您想支持中文,这是相关的。ä
可以写为a
,后跟合并¨
。答案 1 :(得分:4)
从指定的开头删除此字符串中的所有字符 位置并继续到最后一个位置。
如果你想按照druttka的回答进行验证,我建议你创建一个扩展方法
public static class MyStringExtensions
{
public static string SafeRemove(this string s, int numCharactersToRemove)
{
if (numCharactersToRemove > s.Length)
{
throw new ArgumentException("numCharactersToRemove");
}
// other validation here
return s.Remove(s.Length - numCharactersToRemove);
}
}
var s = "123456";
var r = s.SafeRemove(3); //r = "123"
var t = s.SafeRemove(7); //throws ArgumentException
答案 2 :(得分:2)
string a = "abcdefg";
a = a.Remove(a.Length - 3);
答案 3 :(得分:1)
string newString = oldString.Substring(0, oldString.Length - 4);
答案 4 :(得分:0)
如果你真的只需要剪掉最后3个字符,你可以这样做
string a = "abcdefg";
if (a.Length > 3)
{
a = a.Substring(0, a.Length-3);
}
else
{
a = String.Empty;
}