我有一个相当棘手的问题,我不确定该怎么做。
我有两个string
,text1
和text2
。我需要基于这两个创建一个result
。 text2
具有分隔符"|"
,因此如果text1
中包含三个字符,则将有两个分隔符,等等。
我需要创建一个result
,该text2
不带分隔符,并且用text1
中的相应字符替换#
。下面有一些示例:
text1: 間違う text2: ま|ちが|# result: まちがう
text1: 立ち上げる text2: た|#|あ|#|# result: たちあげる
text1: 取る text2: と|# result: とる
非常感谢您的建议。
答案 0 :(得分:3)
如果我理解的正确,您想将text2
中的每个text1
替换为|
中的相应字符,将private static String ProcessString(string text1, string text2) {
return string.Concat(text2
.Split('|')
.Select((item, index) => item == "#"
? text1[index].ToString() // substitute with corresponding char from text1
: item)); // keep as it is
}
视为定界符 ;
您可以在 Linq 的帮助下完成此操作:
代码:
Tuple<string, string>[] tests = new[] {
Tuple.Create("間違う", "ま|ちが|#"),
Tuple.Create("立ち上げる", "た|#|あ|#|#"),
Tuple.Create("取る", "と|#"),
};
var result = string.Join(Environment.NewLine, tests
.Select(test =>
$"{test.Item1,5} + {test.Item2,10} => {ProcessString(test.Item1, test.Item2)}"));
Console.WriteLine(result);
演示:
間違う + ま|ちが|# => まちがう
立ち上げる + た|#|あ|#|# => たちあげる
取る + と|# => とる
结果:
var text = "Google";
var link = "http://www.google.com";
ClipboardHelper.CopyToClipboard("\<a href=\"{link}\">{text}</a>", text);