【问题标题】:Get index of first detected space after a certain index in a string获取字符串中某个索引后第一个检测到的空间的索引
【发布时间】:2013-04-05 10:06:22
【问题描述】:

在要格式化的字符串中(主要是用不同的符号替换字符以在 UI 上进行渲染测试),我必须检测 % 然后从该 % char 中跳过所有字符 util 第一个空格,并且必须对中的所有实例重复字符串。

例如 abcd%1$s efgh %2$d ijkl 。在这个字符串中,我必须获取 % 的索引,然后从中找到第一个空格的索引。基本上,我必须跳过这个%1$s%2$d,它们是某种格式的占位符。我希望,我在这里没有把它复杂化。

【问题讨论】:

    标签: c# .net regex string


    【解决方案1】:

    您可以很容易地做到这一点,只需抓住第一个百分号的索引,然后利用该索引从那里找到第一个空格:

    var start = myString.IndexOf("%");
    var spaceIndex = myString.IndexOf(" ", start)
    

    当然 myString 的值是您在问题中表示的字符串。

    【讨论】:

      【解决方案2】:

      以下是最简单且可扩展的,根据您的要求“此字符串中的abcd%1$s efgh %2$d ijkl 我必须跳过此%1$s%2$d,它们是某种格式的占位符。”

      string[] placeHolders = new string[] {"%1$s", "%2$d"};
      string[] splits = "abcd%1$s efgh %2$d ijkl".Split(placeHolders, StringSplitOptions.None);
      

      这将提供splits["abcd", "efgh", "ijkl"]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-21
        • 1970-01-01
        • 2021-05-26
        相关资源
        最近更新 更多