【问题标题】:SubString in reversed index fast!反向索引中的子字符串快!
【发布时间】:2011-08-07 16:50:36
【问题描述】:

我想知道在反向模式下对字符串使用子字符串函数的最佳方法是什么?

例如我有一个字符串:

string mainStr= @"CDM\D1_1";

现在我想检查最后两个字符是否等于“_1”。注意:我不想在下划线上使用拆分。只是寻找最快的方法来执行从字符串中的最后一个字符开始并结束到第一个字符的反向子字符串。到目前为止我尝试过,但不确定它是否有效!

string revStr = new string(mainStr.ToCharArray().Reverse().ToArray());
if (revStr.Substring(0, 2) == "_1")
{
   //Do blah blah
}

更新

很抱歉打扰各位了,不过今天是星期一!所以问题是我应该在反转数组后检查“1_”。但是最好使用 string.EndsWith ,如下所示。

【问题讨论】:

  • 我打算建议你做了什么哈哈

标签: c# arrays char substring reverse


【解决方案1】:

使用内置的string.EndsWith 方法和string.StartsWith

【讨论】:

    【解决方案2】:

    目前尝试过,但不确定是否有效!

    嗯。你没测试过吗?

    我会使用var index = str.LastIndexOf("_1");

    只是寻找最快的方法来执行从字符串中的最后一个字符开始并结束到第一个字符的反向子字符串。到目前为止我尝试过,但不确定它是否有效!

    你把我弄糊涂了。在这种情况下,您的示例不应该包含 sub.Substring(0, 2) == "1_" 吗?

    【讨论】:

    • 天哪,谢谢你的意见!我想我开始了一个糟糕的星期一:(从早上起我就一直在努力解决这个问题!谢谢 :P
    • 请注意,LastIndexOf 在以下情况下也会返回一个索引:foo_1bar,这可能是不可取的。 EndsWith 似乎更适合所描述的内容。
    • 是的。我同意。但也可以用 LastIndexOf 解决:if (sub.LastIndexOf("1_") == sub.Length-2)
    猜你喜欢
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2010-12-15
    • 2021-01-21
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多