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}"}}

  • 相关阅读:
    CentOS安装 Docker
    检测zookeeper和kafka是否正常
    开机自启动redis
    java学习笔记14--多线程编程基础1
    java学习笔记13--反射机制与动态代理
    JobControl 的实现原理
    Hadoop中Partition深度解析
    Mapper 与 Reducer 解析
    hadoop中OutputFormat 接口的设计与实现
    hadoop中InputFormat 接口的设计与实现
  • 原文地址:https://www.cnblogs.com/dazhangyu/p/5465950.html
Copyright © 2011-2022 走看看