-2

我正在尝试做一个简单的替换。我的问题是,它似乎没有替换字符串,而是抓住了最后几个字符并将它们附加到末尾。

public static Dictionary<string, string> dict = new Dictionary<string, string> {
{"1", @"\\id 1ch\n fjdsbfjdshfd"},
{"2", @"\\id 1co\n fjdsbfjdshfd"},
{"3", @"\\id 1th\n fjdsbfjdshfd"}
};

public static string bookNameFn(string line)
{
    return line.Split(' ')[1].ToLower().Replace("1ch", "1Chr").Replace("1co", "1Cor").Replace("1th", "1Thess");
}

foreach (KeyValuePair<String, String> usfm in dict)
{
    foreach (var line in usfm.Value.Split('\n'))
    {
        if (line.StartsWith("\\id "))
        {
            Console.WriteLine(bookNameFn(line));
        }
    }
}

输出

1Chrr
1Corr
1Thessess

期望的输出

1Chr
1Cor
1Thess
4

1 回答 1

0

使用文字符号,例如

@"\id 1th\n fjdsbfjdshfd";

它会起作用,问题是通过字符串构造函数解释值的方式。

于 2013-04-15T23:22:29.953 回答