从未知长度的字符串中删除n个字符

时间:2013-06-20 11:30:25

标签: c# .net string substring

我有以下代码,从未知长度的字符串中删除5个字符。

string latitudelength       = latitude.Length.ToString(CultureInfo.InvariantCulture); //<<--Get length of string
int intLatitudeLength       = Convert.ToInt32(latitudelength) -5; //<--Now substract 5 char from it
string trimLatitude         = latitude.Remove(5, intLatitudeLength); //<-- now remove all chars after 5th

上面的内容似乎只是为了将未知长度的字符串修剪为5个字符。

有更专业的方式吗?

感谢

有人可以解释为什么这篇文章被标记下来了,这里发布的很多例子都使用了substring,如果知道字符串的长度那么substring就可以了,但是字符串的长度是未知的,所以substring不能使用。

我的示例计算字符串的长度,然后删除所需的字符数。

我的问题清楚地询问是否有更专业的方式。


我已经清理了我的代码,所以希望它可以帮助将来的任何人

string latitudelength       = latitude.Length.ToString(CultureInfo.InvariantCulture);
int intLatitudeLength       = Convert.ToInt32(latitudelength);
string trimLatitude         = intLatitudeLength > 5 ? latitude.Substring(0,5) : latitude;

它现在检查字符串的长度,如果超过5个字符使用子字符串,如果少于仅显示纬度等。我没有添加代码,如果字符串为空

4 个答案:

答案 0 :(得分:6)

string trimLatitude = latitude.Substring(0, Math.Min(latitude.Length,5));

答案 1 :(得分:2)

为什么要在.ToString()属性上调用Length然后将其转换为int?那是一次不必要的行动。

你可以这样做:

 string trimLatitude = latitude.substring(0, intLatitudeLength);

此外,因为你陈述修剪。我希望你不只是试图修剪5 whitespace characters。否则你可以使用.Trim()

答案 2 :(得分:1)

string.Substring可以解决此问题。

答案 3 :(得分:1)

为避免SubString出现异常,您可以使用LINQ:

 trimLatitude  = new string(latitude.Take(5).ToArray());