首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算大字符串中字符串的出现情况,直到第九次出现时才得到子字符串?

如何计算大字符串中字符串的出现情况,直到第九次出现时才得到子字符串?
EN

Stack Overflow用户
提问于 2014-01-03 10:07:01
回答 4查看 73关注 0票数 0

我有一根这样的绳子:

这是维基百科的一句话--这是对维基百科访问者的一个概括性介绍。该项目还有一篇关于自己的百科全书文章,维基百科,以及一些有抱负的贡献者的介绍。有关如何向运行维基百科的组织捐款的信息,请参阅捐赠方式。@##@这句话来自google --这是维基百科访问者的一个概括性介绍。该项目还有一篇关于自己的百科全书文章,维基百科,以及一些有抱负的贡献者的介绍。有关如何向运行维基百科的组织捐款的信息,请参阅捐赠方式。@##@这句话来自Facebook --这是维基百科访问者的一个概括性介绍。该项目还有一篇关于自己的百科全书文章,维基百科,以及一些有抱负的贡献者的介绍。有关如何向运行维基百科的组织捐款的信息,请参阅捐赠方式。@##@

现在,从上面的字符串中,我想计算模式"@##@“的出现情况。在这之后,我想要子字符串,直到这个模式在字符串中第二次出现。

所以在上面的例子中,我想要的结果是:

Count= 3子串=“这是维基百科的一句话--这是对维基百科访问者的一般性介绍。该项目还有一篇关于维基百科本身的百科全书文章,以及一些对有抱负的贡献者的介绍。关于如何向维基百科的运营机构捐款的信息,请看捐赠的方式。@##@这句话来自谷歌--这是对维基百科访问者的一般性介绍。该项目还有一篇关于维基百科本身的百科全书文章,以及一些有抱负的撰稿人的介绍。关于如何向维基百科的运营机构捐款的信息,请参阅捐赠方式。”

有人能建议我怎么做吗。提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2014-01-03 10:13:09

试试这个:

代码语言:javascript
运行
复制
 var splitted = text.Split(new[]{"@##@"}, StringSplitOptions.RemoveEmptyEntries);
 var count = splitted.Count();
 var result = string.Join("@##@", splitted.Take(2).ToArray());

计数将包含3,结果将包含所需的字符串。

试试吧,在Ideone这里

票数 3
EN

Stack Overflow用户

发布于 2014-01-03 10:12:58

您希望使用Split方法。

代码语言:javascript
运行
复制
public static Regex regex = new Regex(
  "@##@",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.Compiled
);

string[] results = regex.Split(InputText);
票数 0
EN

Stack Overflow用户

发布于 2014-01-03 10:14:20

代码语言:javascript
运行
复制
s = "... wikipedia string ...";
// define n, you probably have a dynamic n or one that's defined elsewhere...
n=2;
// split the string only n times
string[] parts = s.Split(new string[] {"@##@"}, n, StringSplitOptions.None);
// show splits (use them however you want)
System.Show(parts);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20901109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档