2013-04-15 123 views
-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 
+0

發佈的輸出對於給出的代碼似乎是正確的 – mmutilva

+0

爲什麼這麼說? – user1898657

+0

對不起,我在評論你編輯的問題時,我重新加載,所以我讀了標題「輸出」和期望的輸出在底部 – mmutilva

回答

0

使用文字表示法例如

@"\id 1th\n fjdsbfjdshfd"; 

它會工作,問題是通過字符串構造函數解釋值的方式。

+1

看起來他實際上想要''\\ id 1ch \ n fjdsbfjdshfd「'。 –

+0

如何使用字典的「添加」方法從變量中定義字符串文字? 'dict.Add(「1」,「@」+ string)' – user1898657

+0

你怎麼能不接受我的第一個答案,然後發佈一個新的問題讓我回答? ;) – Jay

相關問題