如何替换自定义格式字符串?
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万元"
我在网上找了很久。但是没有用。请帮助或尝试提供一些想法如何实现这一目标。
在我的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万元"