用其他两个单词替换两个单词字符串不起作用

时间:2013-12-25 01:09:16

标签: c# string windows-phone-8 windows-phone

我以“小雨”等格式从互联网上获取一些字符串,依此类推,我不想将这个字符串“翻译”成其他语言,但如果我尝试这样的话:

get
        {
            return description.replace("light rain", "111 222")
                              .replace("light snow", "333 444");
        } 

我得到结果“light bla”而不是“bla bla”,所以第一个单词不知何故没有翻译。有没有其他方法可以将“硬编码”字符串转换为Windows Phone 8应用程序中的其他语言?!

我已经更改了代码以使其更清晰。上面你看到我需要更多的字符串来替换,但是每个字符串在另一种语言中都有其自己的含义所以对于单词light我有两个不同的单词我必须替换,而不仅仅是一个。因此333。

然而,这段代码每次都给我“灯222”,但它不会取代灯光。

它适用于下面的方法。我只是这样使用它:

            string sentence = "light rain";
            string pattern = "light rain";
            Regex reg = new Regex(pattern);
            string translation = "lagana kiša";
            string result1 = reg.Replace(sentence, translation);

            var result = description
                .Replace("light rain", result1)

它实际上应该适用于更复杂的字符串和句子。谢谢你的回答。

3 个答案:

答案 0 :(得分:0)

get
        {
            var result = description.replace("light rain", "bla bla");
            return result;
        }

详细了解MSDN

上的string replace

答案 1 :(得分:0)

问题可能是替换是区分大小写的,而你的字符串则不同。

答案 2 :(得分:0)

为了解决多个“轻”字的问题,你应该使用正则表达式来代替“小雨”和“bla bla”

这是控制台应用程序中的一些测试用例:

string sentence = "light light light rain rain bla";
string pattern = "light rain";
Regex reg = new Regex(pattern);
string translation = "bla bla";
string result = reg.Replace(sentence, translation);
Console.WriteLine(result);

结果将为"light light bla bla rain bla"