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

    string.Format实际上是调用目标类的ToString(string format,IFormatProvider formatProvider)方法。

    目标类要实现Iformatable接口。实现该方法。

    使用格式化调用时有三个参数:string.Format("value is {0,20:N}",v1);

    大括号内,

    第一个参数是参数的索引号。

    第二个参数是分配的字符数。如果为正数则右对齐,为负数左对齐,输出大于分配字符数则全部输出。

    第三个参数是对像的输出格式(该格式字符串会被当作ToString的第一个参数format,第二个参数是用于背景上下文,一般传入null,主要对于windows时区、日期、货币等信息)。

    public class Point:IFormatable

    {

         double x;

         double y;

        public string ToString(string format,IFormatProvider formatProvider)

       {

             if(format==null)  return this.ToString();

             swich(format)

            {

              case N:return string.format("X:{0,20:N},Y:{0,20:N}",x,y);

              case XY:return $"{x},{y}";

              ... ...

             case :.. ...

            }

       }

    }

    上面自定义的Point类实现了IFormatable接口,就可以使用定义的格式来格式化我们的实例。 例如string.Format("Point Is {0,20:XY}",p1);

    string.Format("Point1 Is {0,20:XY} Point2 Is {1,20:N}",p1,p2);

    执行时,是用stringBuilder生成格式字符串。

    过程:

    1.使用Point1 Is初始化创建stringBuilder对象。

    2.调用stringBuilder的AppendFoamat().他会调用IFormatable接口的ToString(format,privoder); 将p1对象作为实例,冒号后的格式字符串XY,作为format参数,privoder传入null.

    3.stringBuilder.Append(...); //追加字符串Point2 Is

    4.AppendFormat(...)//追加第二个格式字符串。 p2为实例,N作为format参数。

  • 相关阅读:
    剑指 Offer 22. 链表中倒数第k个节点
    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
    Leetcode1450. 在既定时间做作业的学生人数
    Leetcode1572. 矩阵对角线元素的和
    Leetcode 1480. 一维数组的动态和
    Idea连接数据库报错
    Java实现二叉树层次遍历并存入List的方法:从上往下,从左往右
    SpringCloud资源网站
    Java循环对list进行remove
    Java中字符串判空的正确打开方式
  • 原文地址:https://www.cnblogs.com/lbzhu/p/8110421.html
Copyright © 2011-2022 走看看