41

我想找到一个字符串的最后一个字符,然后输入一个if说明,如果最后一个字符等于“A”、“B”或“C”,那么就执行某个操作。我如何获得最后一个字符?

4

6 回答 6

78

使用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

于 2013-02-10T03:07:57.740 回答
14

我假设您实际上并不想要最后一个字符位置(应该是yourString.Length - 1),而是最后一个字符本身。您可以通过使用最后一个字符位置索引字符串来找到它:

yourString[yourString.Length - 1]
于 2013-02-10T03:03:53.517 回答
11

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
}
于 2013-02-10T03:05:39.460 回答
7

有一个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) 中没有足够的元素,则此运算符可能会在运行时失败。

于 2021-02-17T14:58:37.680 回答
0

您还可以通过使用 LINQ 来获取最后一个字符myString.Last(),尽管这可能比其他答案慢,并且它给您一个char,而不是string.

于 2022-01-29T19:17:54.007 回答
0

C# 8.0开始,您可以使用新的语法形式来处理 a 中的特定字符,从而System.Index变得微不足道。您的场景示例:System.Rangestring

var lastChar = aString[^1..]; // aString[Range.StartAt(new Index(1, fromEnd: true))

if (lastChar == "A" || lastChar == "B" || lastChar == "C")
    // perform action here

此处的完整说明:范围(Microsoft Docs)

于 2022-02-06T23:56:57.897 回答