zoukankan      html  css  js  c++  java
  • String.Format格式化字符串

    其一、String.Format (String, Object, Object, Object,...) 将指定的 String 中的格式项替换为三个(及以上)指定的 Object 实例的值的文本等效项。

    使用String.Format时想着简化代码,使代码更具可读性,然而今天使用的时候出现了一个错误,一直提示“输入的字符串格式有误”的错误,度娘找到了这篇文章,解决了我的问题。

    文章链接:http://www.cnblogs.com/linyechengwei/archive/2009/11/17/1604509.html

    原来我在字符串中出现了"{"字符。而"{"字符若出现在string.Format中是必需转义的,也就是要用两个"{{"代表一个"{"。

    一、转义

    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: 输入字符串的格式不正确。

    事实上,很多情况下带特殊含义的字符都是这样转义的:如, 
    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: 应输入 ;


    SQL 字符串常量,用两个 ' 连写表示一个 ' (半角单引号) 
    DECLARE @str6 varchar(100)
    SET @str6 = 'My UserName is ''Jinglecat''.' 
    PRINT @str6 -- My UserName is 'Jinglecat'.


    正则表达式中用,两个 $ 连写表示一个 $  (dollar)

    二、注意:转义的"{"需要用两个"{{";但是格式化替换的指定的 Object 实例的值所在的"{}"不需要两个,也就是:

    {{"id":1,"name":"{0}"}}

  • 相关阅读:
    Leetcode Reverse Words in a String
    topcoder SRM 619 DIV2 GoodCompanyDivTwo
    topcoder SRM 618 DIV2 MovingRooksDiv2
    topcoder SRM 618 DIV2 WritingWords
    topcoder SRM 618 DIV2 LongWordsDiv2
    Zepto Code Rush 2014 A. Feed with Candy
    Zepto Code Rush 2014 B
    Codeforces Round #245 (Div. 2) B
    Codeforces Round #245 (Div. 2) A
    Codeforces Round #247 (Div. 2) B
  • 原文地址:https://www.cnblogs.com/dazhangyu/p/5465950.html
Copyright © 2011-2022 走看看