我有以下代码,从未知长度的字符串中删除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个字符使用子字符串,如果少于仅显示纬度等。我没有添加代码,如果字符串为空
答案 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());