在我的ASP.NET页面中,我有一个字符串(从SQL db返回)。我想根据给定的文本位置加粗字符串文本的某些部分。
例如,如果我有一个字符串如下:
"This is an example to show where to bold the text"
我得到角色开始位置:6和结束位置:7,然后我会在我的字符串中加粗“is”这个词,得到:
“此 是一个示例,用于显示文本的粗体位置”
有什么想法吗?
编辑:请记住,我需要使用开始/结束位置,因为字符串中可能有重复的单词。
答案 0 :(得分:2)
您可以使用String.Replace
方法。
返回一个新字符串,其中所有出现的指定字符串都在其中 当前实例将替换为另一个指定的字符串。
string s = "This is an example to show where to bold the text".Replace(" is ", " <b>is</b> ");
Console.WriteLine(s);
这是DEMO
。
由于您清除了所需内容,因此可以使用StringBuilder
类。
string s = "This is an example to show where to bold the text";
var sb = new StringBuilder(s);
sb.Remove(5, 2);
sb.Insert(5, "<b>is</b>");
Console.WriteLine(s);
这是DEMO
。
注意 :由于您没有将<b>
标记视为输出,因此并不意味着它们不存在;)
< / p>
答案 1 :(得分:2)
即。修改字符串(插入标记)从结束到开始:
var result = str.Insert(7, "</b>").Insert(6 - 1, "<b>");
答案 2 :(得分:1)
首先在完整字符串中找到要替换的字符串
用<b>+replacestring+</b>
string str="This is an example to show where to bold the text";
string replaceString="string to replace"
str=str.Replace(replaceString,<b>+replaceString+</b>);
string replaceString=str.Substring(6,2);
str=str.Replace(replaceString,<b>+replaceString+</b>);
SubString示例:
http://www.dotnetperls.com/substring
int startPosition=6;
int lastPosition=7;
int lastIndex=lastPosition-startPosition+1;
string str="This is an example to show where to bold the text";
string replaceString=str.Substring(startPosition,lastIndex);
str=str.Replace(replaceString,<b>+replaceString+</b>);
答案 3 :(得分:1)
你需要做这样的事情......
**
strStart = MID(str, 0 , 7) ' Where 7 is the START position
str2Replace = "<b>" & MID(str, 8, 10) & "</b>" ' GRAB the part of string you want to replace
str_remain = MId(str, 11, Len(str)) ' Remaining string
Response.write(strStart & str2Replace & str_remain )
**