【问题标题】:How to find the last occurrence of a set of characters from a string如何从字符串中查找最后一次出现的一组字符
【发布时间】:2013-10-09 09:23:51
【问题描述】:

我正在尝试在字符串中查找最后一个运算符(+-*/)。

我试图使用方法string.indexof('operator', i);,但在这种情况下我只能得到operator的单一类型。有没有更好的解决方案?

string 的值例如可以是:

1+1/2*3-4

1/2-3+4*7

这意味着最后一个运算符可以是它们中的任何一个。

【问题讨论】:

  • +1,好问题。我知道如何做到这一点,但它不会很优雅,所以在我找到一种可以简洁地完成的方法(使用类似 LINQ 的方法)之前,我会等着看其他建议。编辑:排序,有一个方法。

标签: c# string lastindexof


【解决方案1】:

http://msdn.microsoft.com/en-us/library/system.string.lastindexofany.aspx

LastIndexOfAny 方法就是您所追求的。它将获取一个字符数组,并找到任何字符的最后一次出现。

var myString = "1/2-3+4*7";
var lastOperatorIndex = myString.LastIndexOfAny(new char[] { '+', '-', '/', '*' });

在这种情况下,lastOperatorIndex == 7

如果您想将字符本身存储到一个变量中,您可以拥有:

var myString = "1/2-3+4*7";
var operatorChar = myString[myString.LastIndexOfAny(new char[] { '+', '-', '/', '*' })];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 2011-03-09
    • 1970-01-01
    • 2012-03-23
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多