如何根据替换字符将一个字符串的值替换为另一个字符串?

时间:2019-10-03 08:12:44

标签: c# string

我有一个相当棘手的问题,我不确定该怎么做。

我有两个stringtext1text2。我需要基于这两个创建一个resulttext2具有分隔符"|",因此如果text1中包含三个字符,则将有两个分隔符,等等。

我需要创建一个result,该text2不带分隔符,并且用text1中的相应字符替换#。下面有一些示例:

text1:   間違う      text2: ま|ちが|#      result: まちがう
text1:   立ち上げる   text2: た|#|あ|#|#    result: たちあげる
text1:   取る        text2: と|#          result: とる

非常感谢您的建议。

1 个答案:

答案 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);