如何替换自定义格式字符串?

How to replace custom format string?

我在网上找了很久。但是没有用。请帮助或尝试提供一些想法如何实现这一目标。

在我的SQL数据库中,有一个数据:

Reason:%s与%s等预算科目的内容存在重复,核减%d万元

ResultS1:本科目镍铁中多元素样品前处理

ResultS2:本科目ICP测定法

ResultD:2.50

我要获取字符串:本科目镍铁中多元素样品前处理与本科目ICP测定法等预算科目的内容存在重复,核减2.50万元

SELECT concat_ws('',ResultS1,'与',ResultS2,'等预算科目的内容存在重复,核减',ResultD,'万元') as Result 
FROM `yourtable`

遵循 c#

中的 answer 连接字符串
string key = String.Join("", new String[] { ResultS1,'与',ResultS2,'等预算科目的内容存在重复,核减',ResultD,'万元'});

您可以使用 this question 中有用的扩展方法(第二个答案) ReplaceFirst:

public static string ReplaceFirst(this string text, string search, string replace)
{
    int pos = text.IndexOf(search);
    if (pos < 0)
    {
        return text;
    }
    return $"{text.Substring(0, pos)}{replace}{text.Substring(pos + search.Length)}";
}

然后这样称呼它

var reason = "%s与%s等预算科目的内容存在重复,核减%d万元";
var results1 = "本科目镍铁中多元素样品前处理";
var results2 = "本科目ICP测定法";
var resultd = "2.50";

var final = reason
    .ReplaceFirst("%s", results1)
    .ReplaceFirst("%s", results2)
    .ReplaceFirst("%d", resultd);

其中final被赋值

"本科目镍铁中多元素样品前处理与本科目ICP测定法等预算科目的内容存在重复,核减2.50万元"