2011-06-24 139 views

回答

33

可以做的情况下:

 string str = "Hello Marco !"; 
     str = str.Substring(0, str.Length - 2); 
+0

“子串”是无效的函数名称。它应该是“子串”。 – Alexander

+8

@Alexander我不知道你在说什么语言,但在.net c#中,这是一种有效的方法。这也是适当的情况。 –

+0

我非常抱歉 - 我没有注意到c#已被提及。我只是在寻找方法签名,并发现这一个:) – Alexander

6

什么

string s = "Hello Marco !"; 
s = s.Substring(0, s.Length - 2); 
+1

不适用于太短的字符串吗? :P –

+5

@阿门 - 这也不是问题,是吗? ;) –

1

试试这个:

var s = "Hello Marco !"; 

var corrected = s.Substring(0, s.Length - 2); 
1
string s = "Hello Marco !"; 
s = s.Remove(s.length - 2, 2); 
+0

这只会得到最后两个字符。 – Yuck

+0

@Yuck,是的,我正在去除和习惯做子字符串。 – bdparrish

2

你检查MSDN文档(或智能感知)? String.Substring method怎么样?

您可以使用Length property获得长度,从中减去2,并从开头将子字符串返回到结尾的2个字符。 例如:

string str = "Hello Marco !"; 
str = str.Substring(0, str.Length - 2); 
23
s = s.Substring(0, Math.Max(0, s.Length-2)) 

到包括其中长度小于2

3

我将修剪为不需要的字符的结束:

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; 
} 

有了这个,你是安全的。基于最后两个字符必须被移除的事实进行清除太弱。

2

如果它是未知数量的字符串,你可以通过做 修剪掉最后一个字符s = s.TrimEnd('','!')。Trim();

你有没有考虑过使用正则表达式?如果你只想允许字母数字字符,你可以使用正则表达式来替换符号,如果不是!你得到%?

相关问题