从字符串末尾对字符串进行子串
我需要从字符串的末尾删除两个字符。
所以:
string = "Hello Marco !"
一定是
Hello Marco
我该怎么做?
你可以做:
string str = "Hello Marco !"; str = str.Substring(0, str.Length - 2);
s = s.Substring(0, Math.Max(0, s.Length - 2))
包括长度小于2的情况
关于什么
string s = "Hello Marco !"; s = s.Substring(0, s.Length - 2);
我将修剪不需要的字符的结尾:
s = s.TrimEnd(' ', '!');
确保即使有更多空间也能正常工作。 或者更好,如果你想确保它始终有效,因为输入文本似乎来自用户:
Regex r = new Regex(@"(?'purged'(\w|\s)+\w)"); Match m = r.Match("Hello Marco !!"); if (m.Success) { string result = m.Groups["purged"].Value; }
有了它,你就更安全了。 基于必须删除最后两个字符的事实的清除太弱了。
您检查过MSDN文档(或IntelliSense)吗? String.Substring
方法怎么样?
您可以使用Length
属性获取Length
,从中减去2,并从末尾将子字符串返回到2个字符。 例如:
string str = "Hello Marco !"; str = str.Substring(0, str.Length - 2);
如果它是一个未知数量的字符串,你可以通过s = s.TrimEnd(”,’!’)来修剪掉最后一个字符.Trim();
你考虑过使用正则表达式吗? 如果您只想允许使用字母数字字符,可以使用正则表达式替换符号,如果不是,请使用! 你得到%?
试试这个:
var s = "Hello Marco !"; var corrected = s.Substring(0, s.Length - 2);
string s = "Hello Marco !"; s = s.Remove(s.length - 2, 2);