如何删除具有不同长度的字符串的最后数字 C#
How to remove last numbers of string with different lengths C#
注意:最后两个的长度不同。所以 Length-1 不起作用(对吧?)
如何删除示例中的最后一个数字:
ABStreet 10 552896
ACLane 1520 155
所以输出:
ABStreet 10
ACLane 1520
可能已经有人问过它了,我虽然想到了 TrimEnd,但我似乎无法获得正确的代码。
var x = "ABStreet 10 552896";
var y = "ACLane 1520 155";
Console.WriteLine(x.Substring(0, x.LastIndexOf(' ')));
Console.WriteLine(y.Substring(0, y.LastIndexOf(' ')));
您可以使用简单的 Regex 表达式
List<string> elements = new List<string>() {"ABStreet 10 552896","ACLane 1520 155"};
Regex r = new Regex(@"\d+$");
foreach(string s in elements)
Console.WriteLine("[" + r.Replace(s, "").Trim() + "]");
这只是匹配字符串末尾的任何数字序列并将其删除(同时修剪掉最后一个 space)
这样就可以了:
string test = "ABStreet 10 552896";
string testWithoutLastNumber = test.Substring(0, test.LastIndexOf(' '));
我只是不确定这是否是最优雅 and/or 最有效的方法。 LastIndexOf
方法查找最后一次出现的空格(或您希望使用的任何字符分隔符),然后 Substring
直到那个位置。由于字符串中的第一个字符位于 position/index 0
.
,因此不包括分隔符本身
使用 Regex 看起来像这样:
class Program
{
static void Main(string[] args)
{
string test = "ABStreet 10 552896";
test = Regex.Replace(test, @"\s\d*$",string.Empty);
Console.WriteLine(test);
}
}
或使用 TrimEnd:
class Program
{
static void Main(string[] args)
{
string test = "ABStreet 10 552896";
test = test.TrimEnd('1', '2', '3', '4', '5', '6', '7', '8', '9', '0').Trim();
Console.WriteLine(test);
}
}
注意:最后两个的长度不同。所以 Length-1 不起作用(对吧?)
如何删除示例中的最后一个数字:
ABStreet 10 552896
ACLane 1520 155
所以输出:
ABStreet 10
ACLane 1520
可能已经有人问过它了,我虽然想到了 TrimEnd,但我似乎无法获得正确的代码。
var x = "ABStreet 10 552896";
var y = "ACLane 1520 155";
Console.WriteLine(x.Substring(0, x.LastIndexOf(' ')));
Console.WriteLine(y.Substring(0, y.LastIndexOf(' ')));
您可以使用简单的 Regex 表达式
List<string> elements = new List<string>() {"ABStreet 10 552896","ACLane 1520 155"};
Regex r = new Regex(@"\d+$");
foreach(string s in elements)
Console.WriteLine("[" + r.Replace(s, "").Trim() + "]");
这只是匹配字符串末尾的任何数字序列并将其删除(同时修剪掉最后一个 space)
这样就可以了:
string test = "ABStreet 10 552896";
string testWithoutLastNumber = test.Substring(0, test.LastIndexOf(' '));
我只是不确定这是否是最优雅 and/or 最有效的方法。 LastIndexOf
方法查找最后一次出现的空格(或您希望使用的任何字符分隔符),然后 Substring
直到那个位置。由于字符串中的第一个字符位于 position/index 0
.
使用 Regex 看起来像这样:
class Program
{
static void Main(string[] args)
{
string test = "ABStreet 10 552896";
test = Regex.Replace(test, @"\s\d*$",string.Empty);
Console.WriteLine(test);
}
}
或使用 TrimEnd:
class Program
{
static void Main(string[] args)
{
string test = "ABStreet 10 552896";
test = test.TrimEnd('1', '2', '3', '4', '5', '6', '7', '8', '9', '0').Trim();
Console.WriteLine(test);
}
}