繁体   English   中英

字符串分割//操作

[英]String split// manipulation

string keywords = "heard";
string strText = "Have you not heard!! what I said?"
string[] words = strText.Split(' ');
string result = "";

for (int i = 0; i < words.Length; i++)
{
   if (words[i].Contains(keywords))
    result += "<span>" + words[i] + "</span>" + " ";
   else
    result += words[i] + " ";
}

我得到以下输出:

Have you not <span>heard!!</span> what I said?

所需的输出:

Have you not <span>heard</span>!! what I said?

有人可以指导我如何获得所需的输出。 strText只能用空格分割。

使用String.Replace

var result = strText.Replace(keywords, "<span>" + keywords + "</span>");

如果您要替换的关键字很多,那么只需循环替换即可:

string[] keywords = { "heard", "said" };
string result = "Have you not heard!! what I said?";

foreach(var keyword in keywords)
    result = result.Replace(keyword, "<span>" + keyword + "</span>");

替代解决方案是正则表达式替换:

string keywords = "heard|said";
string result = "Have you not heard!! what I said?";
result = Regex.Replace(result, keywords, m => "<span>" + m.Value + "</span>");

你为什么还要遍历所有单词? 这会给你同样的效果:

        string strText = "Have you not heard!! what I said?";
        string newText = strText.Replace("heard", "<span>heard</span>");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM