3

在我的 ASP.NET 页面中,我有一个字符串(从 SQL db 返回)。我想根据给定的文本位置加粗字符串文本的某些部分。

例如,如果我有一个字符串如下:

"This is an example to show where to bold the text"

我得到字符开始位置:6 和结束位置:7,然后我会在我的字符串中加粗单词“is”,得到:

“这一个显示在何处加粗文本的示例”

有任何想法吗?

编辑:请记住,我需要使用开始/结束位置,因为字符串中可能有重复的单词。

4

4 回答 4

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>标签视为输出,这并不意味着它们不存在;)

于 2013-04-02T06:40:11.803 回答
2
  1. 在字符串的第 7 位插入关闭标签
  2. 在字符串的位置 5 (6 - 1) 中插入一个开放标签。
  3. 你会得到一个类似“This is an example…”的字符串

即从头到尾修改字符串(插入标记):

var result = str.Insert(7, "</b>").Insert(6 - 1, "<b>");
于 2013-04-02T06:52:29.273 回答
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>);

编辑 1

string replaceString=str.Substring(6,2);
str=str.Replace(replaceString,<b>+replaceString+</b>);

子字符串示例: http:
//www.dotnetperls.com/substring

编辑 2

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>);
于 2013-04-02T06:37:13.923 回答
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 )

**

于 2013-04-02T06:46:38.297 回答