【问题标题】:How do I remove the second and third occurrences of $ from a given string? [closed]如何从给定字符串中删除第二次和第三次出现的 $? [关闭]
【发布时间】:2020-06-07 07:19:11
【问题描述】:
"srmbscsrm $bsc $ srmbsc $ "

如何使用字符串函数删除上述字符串中第二次和第三次出现的$ 符号?

【问题讨论】:

  • Java, C#, C++? ???请看How to Ask
  • 我看到的唯一选择是获取子字符串然后附加它们
  • 您特别使用哪种语言?您不能同时为所有这些人提出和回答问题。

标签: java c# c++


【解决方案1】:

先查找,然后删除。在 C++ 中:

#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>

int main() {
  std::string s{"srmbscsrm $bsc $ srmbsc $ "};

  auto const del = '$';
  auto const first = std::find(s.begin(), s.end(), del);
  if (first != s.end())
    s.erase(std::remove(std::next(first), s.end(), del), s.end());
  std::cout << s;
}

输出:srmbscsrm $bsc srmbsc

【讨论】:

    【解决方案2】:

    用 Java 做这件事的方法很蹩脚:

    String a="srmbscsrm $bsc $ srmbsc $ ";
    StringBuffer str=new StringBuffer();
    char[] x=a.toCharArray();
    int first=1; // to include only first occurrence of $
    for(int i=0;i<x.length;i++) {
        if(x[i]!='$') {
            str.append(x[i]);
        }   else if(x[i]=='$' && first==1) {
            str.append(x[i]);
            first++;
        }
    }
    System.out.println(str.toString());
    

    【讨论】:

      【解决方案3】:
      string s = "srmbscsrm $bsc $ srmbsc $";
      string result = string.Empty;
      char t = '$';
      int count = 0;
      for (int i = 0; i < s.Length; i++)
      {
          if (s[i] == t)
          {
              count++;
              if (count == 1)
              {
                  result += s[i];
              }
          }
          else
          {
              result += s[i];
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-05
        • 1970-01-01
        • 2012-07-11
        • 2023-01-18
        • 2016-04-09
        相关资源
        最近更新 更多