我正在尝试使用C#/ razor操作字符串。
我想要做的只是在“摘要”一词的第二个外观右侧显示字符串的一部分。 因此,例如,如果字符串是:
摘要症状阅读更多摘要t骨联盟是青春期后期在足部形成的骨桥。随着t骨联盟从纤维状进展...
我想将其显示为:
t骨联盟是青春期后期在足部形成的骨桥。随着t骨联盟从纤维状进展...
所以,我想我需要知道的是你如何使用“contains”来查找字符串中子字符串的第二个实例?
好的......所以Soner让我朝着正确的方向前进,但是当我尝试这个时,它出错了:
@{
string s = @Html.Raw(item.ShortBody);
int firstindex = s.IndexOf("Summary ");
s = s.Remove(0, 8);
int secondindex = s.IndexOf("Summary ");
var strbody = s.Substring(secondindex + 8);
}
@strbody
如何在我的视图中将操纵的字符串输出到屏幕? @s不起作用..
答案 0 :(得分:2)
如果您知道该字符串始终以第一个摘要开头,则可以在开始搜索之前使用包含偏移量的IndexOf
签名。
var second = str.IndexOf("Summary", 7);
var description = str.Substring(second + 8).TrimStart();
或者,您可以找到第一个,然后使用它的位置来找到正确的偏移量
var second = str.IndexOf("Summary", str.IndexOf("Summary") + 7);
var description = str.Substring(second + 8).TrimStart();
显然,这两者都依赖于字符串确实包含单词Summary
的至少两个实例的事实。如果情况并非如此,那么在尝试查找子字符串之前,您需要检查IndexOf
的结果是否等于或大于零。
另一种选择,如果您知道该单词最多出现2次是使用LastIndexOf
而不是IndexOf
,那么请在此之后使用子字符串。
var second = str.LastIndexOf("Summary");
var description = str.Substring(second + 8).TrimStart();
答案 1 :(得分:1)
如果在您的第二个Summary
之后没有Summary
个字词,您可以使用String.Split
方法;
string s = "Summary Symptoms Read More Summary A tarsal coalition is a bridge of bone that forms in the foot in late adolescence. As the tarsal coalition progresses from a fibrous...";
var array = s.Split(new string[] {"Summary "}, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(array[1]);
输出将是;
A tarsal coalition is a bridge of bone that forms in the foot in late adolescenc
e. As the tarsal coalition progresses from a fibrous...
这里有 demonstration
。
如果您在第二个摘要后面有摘要字词,则可以使用String.IndexOf
和String.SubString
等方法;
string s = "Summary Symptoms Read More Summary A tarsal coalition is a bridge of bone that forms in the foot in late adolescence. As the tarsal coalition progresses from a fibrous...";
int firstindex = s.IndexOf("Summary ");
s = s.Remove(firstindex, 8);
int secondindex = s.IndexOf("Summary ");
Console.WriteLine(s.Substring(secondindex + 8));
输出将是;
A tarsal coalition is a bridge of bone that forms in the foot in late adolescenc
e. As the tarsal coalition progresses from a fibrous...
这里有 demonstration
。