我想找到一个字符串的最后一个字符,然后输入一个if
说明,如果最后一个字符等于“A”、“B”或“C”,那么就执行某个操作。我如何获得最后一个字符?
6 回答
使用endswith
字符串的方法:
if (string.EndsWith("A") || string.EndsWith("B"))
{
//do stuff here
}
下面是解释此方法的 MSDN 文章:
http://msdn.microsoft.com/en-us/library/system.string.endswith(v=vs.71).aspx
我假设您实际上并不想要最后一个字符位置(应该是yourString.Length - 1
),而是最后一个字符本身。您可以通过使用最后一个字符位置索引字符串来找到它:
yourString[yourString.Length - 1]
string
是一个zero based
数组char
。
char last_char = mystring[mystring.Length - 1];
关于问题的第二部分,如果 char 是A
, B
,C
使用if statement
char last_char = mystring[mystring.Length - 1];
if (last_char == 'A' || last_char == 'B' || last_char == 'C')
{
//perform action here
}
使用switch statement
switch (last_char)
{
case 'A':
case 'B':
case 'C':
// perform action here
break
}
有一个index-from-end 运算符,如下所示:^n
.
var list = new List<int>();
list[^1] // this is the last element
list[^2] // the second-to-last element
list[^n] // etc.
关于索引和范围的官方文档描述了这个操作符。需要注意的一件事是:如果列表 ( System.ArgumentOutOfRangeException
) 中没有足够的元素,则此运算符可能会在运行时失败。
您还可以通过使用 LINQ 来获取最后一个字符myString.Last()
,尽管这可能比其他答案慢,并且它给您一个char
,而不是string
.
从C# 8.0开始,您可以使用新的语法形式来处理 a 中的特定字符,从而System.Index
变得微不足道。您的场景示例:System.Range
string
var lastChar = aString[^1..]; // aString[Range.StartAt(new Index(1, fromEnd: true))
if (lastChar == "A" || lastChar == "B" || lastChar == "C")
// perform action here
此处的完整说明:范围(Microsoft Docs)