注意:最后2个的长度不同。所以Length-1不起作用(对吧?)
如何从示例中删除最后一个数字:
ABStreet 10 552896
ACLane 1520 155
因此输出:
ABStreet 10
ACLane 1520
它可能已经在某个地方被问到了,我虽然是TrimEnd,但我似乎无法获得正确的代码。
答案 0 :(得分:1)
使用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);
}
}
答案 1 :(得分:0)
var x = "ABStreet 10 552896";
var y = "ACLane 1520 155";
Console.WriteLine(x.Substring(0, x.LastIndexOf(' ')));
Console.WriteLine(y.Substring(0, y.LastIndexOf(' ')));
答案 2 :(得分:0)
您可以使用简单的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() + "]");
这只是匹配字符串末尾的任何数字序列并将其删除(也会删除最后一个空格)
答案 3 :(得分:0)
这就是工作:
string test = "ABStreet 10 552896";
string testWithoutLastNumber = test.Substring(0, test.LastIndexOf(' '));
我只是不确定它是否是最优雅和/或最有效的方法。 LastIndexOf
方法查找空格的最后一次出现(或者您希望使用的任何字符分隔符),然后直到达到该位置的Substring
。由于字符串中的第一个字符位于/ 0
位置,因此不包括分隔符本身。