-4

我有以下代码从未知长度的字符串中删除 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 个字符似乎还有很长的路要走。

有没有更专业的方法?

谢谢

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

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

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


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

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

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

4

4 回答 4

6
string trimLatitude = latitude.Substring(0, Math.Min(latitude.Length,5));
于 2013-06-20T11:33:02.480 回答
2

为什么要调用.ToString()Length属性,然后将其转换为 int?那是不必要的操作。

你可以这样做:

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

也因为你说修剪。我希望你不只是想修剪5 whitespace characters。否则你可以只使用.Trim()

于 2013-06-20T11:34:49.650 回答
1

string.Substring可以处理这个。

于 2013-06-20T11:33:25.353 回答
1

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

 trimLatitude  = new string(latitude.Take(5).ToArray());
于 2013-06-20T11:37:14.970 回答