string.Format出現異常"輸入的字符串格式有誤「

string.Format出現異常"輸入的字符串格式有誤"的解決方法

今天在作項目時,碰到一個很奇怪的問題,我使用string.Format竟然報「輸入的字符串格式有誤」的錯誤,我調了好久,仍是不對,不明白錯在哪裏,後來仍是google了一下,原來我在字符串中出現了"{"字符。而"{"字符若出如今string.Format中是必需轉義的,也就是要用兩個"{{"表明一個"{",同時雙下面把我查找到的解決方法的相關文章一同粘貼出來。
html

1、轉義正則表達式

C# 中使用相似 {0}, {1:yyyy-MM-dd} 這樣的格式佔位符,若是被格式化字符串自己包含 { 或者 } 怎麼辦呢?答案是:用兩個 { 或者 }連寫表示單個。 

例如 
string str1 = String.Format("`Hello`, {0}, Now is {{{1:yyyy-MM-dd HH:mm:ss}}}"
    "Jinglecat"
    DateTime.Now); // {Hello}, Jinglecat, Now is {2007-07-18 23:06:35} 
string str2 = String.Format("{Hello}, {0}, Now is {{1:yyyy-MM-dd HH:mm:ss}}"
    "Jinglecat"
    DateTime.Now); // --> System.FormatException: 輸入字符串的格式不正確。ide

事實上,不少狀況下帶特殊含義的字符都是這樣轉義的:如, 
C#  中,當字符串常量帶 @  前導的時候,用兩個 " 連寫表示一個 " (半角雙引號) 
string str3 = @"My UserName is ""Jinglecat""."// My UserName is "Jinglecat".
//string str4 = @"My UserName's "Jinglecat""; // error CS1002: 應輸入 ;
//string str5 = @"My UserName's \"Jinglecat\""; // error CS1002: 應輸入 ;post


SQL 字符串常量,用兩個 ' 連寫表示一個 ' (半角單引號) 
DECLARE @str6 varchar(100)
SET @str6 = 'My UserName is ''Jinglecat''.' 
PRINT @str6 -- My UserName is 'Jinglecat'.google


正則表達式中用,兩個 $ 連寫表示一個 $  (dollar)url

原文連接:http://www.cnblogs.com/linyechengwei/archive/2009/11/17/1604509.htmlspa

相關文章
相關標籤/搜索