title author date CreateTime categories
C# 6.0 字符串 String Interpolation
lindexi
2018-08-10 19:16:52 +0800
2018-2-13 17:23:3 +0800
C#

本文主要:C# 6.0 新特性 String Interpolation,一些比较少知道的知识。
本文内容有:字符串新特性的一般使用、格式化字符串、保留小数点、判断字符串

原文发在csdn http://blog.csdn.net/lindexi_gd/article/details/49716741

本文做了一些修改。

"hello $world"的格式化字符串是指把字符串中一个单词,以一个标示开头。可以代换为单词所指的变量。
这个在jq有,而C#string的格式只能用格式的字符占位符,格式的字符占位符都是数字,这样多了很容易混,好多我都出现了,拷贝代码,然后没有排好数字,漏了一个数字,这样出现了错误。
string.Format("这里有很长字符串{0}{2}" , "Hello" , "csdn");

而看到一个大神实现了类似jQueryStringFormat的扩展string,觉得C#内置有一个方法:

            var csdn = "csdn";
var result = $"Hello {csdn}";
Console.Write(result);

会输出

通过$开头字符串,中间{}作为变量名,可以把字符串代换为变量的字符。

这就是 C# 6.0 新特性: String Interpolation

但是 String Interpolation 如何输入一定长度的字符串?

我看到了堆栈炸有大神问了一个问题,刚好我在做的编码工具也遇到命令行输入的不好看,需要格式化,所以就去找下方法。

后来发现,可以在ToString放参数的,把参数写在:后就可以传进去。

        static void Main(string[] args)
{
string csdn = "csdn";
double n = 1.1315;
string str = $"Hello {csdn} 新特性";
Console.WriteLine(str); str = $"Hello {csdn} 新特性 {n}";
Console.WriteLine(str); str = $"Hello {csdn} 新特性 {n:1.##}";
Console.WriteLine(str); //不生效
str = $"Hello {csdn:10} 新特性 {n:1.##}";
Console.WriteLine(str);
}

如果要指定一个字符串显示的长度,不够长度填充空格,使用,

            str = $"Hello {csdn,10} 新特性 {n:1.##}";
Console.WriteLine(str);

关于字符串长度的使用,参见:https://msdn.microsoft.com/en-us/library/dn961160.aspx

可以看到上面的长度是添加在左边,如果要添加在右边?可以使用字符串函数

            str = $"Hello {csdn.PadRight(10)} 新特性 {n:1.##}";
Console.WriteLine(str);

当然,可以在字符串使用判断。

            str = $"Hello {(csdn =="csdn"?"csdn":"lindexi")} 新特性 {n:1.##}";
Console.WriteLine(str);

代码传到了 csdn 下载:http://download.csdn.net/detail/lindexi_gd/9749065

还有代码放在 code.csdn

代码:https://code.csdn.net/lindexi_gd/lindexi_gd/tree/master/hellow_$csdn

参考:http://www.cnblogs.com/isaboy/p/4945045.html

更多特性参见 http://www.cnblogs.com/wolf-sun/p/5168217.html

2018-8-10-C#-6.0-字符串-String-Interpolation的更多相关文章

  1. C# 6.0:String Interpolation

    在开发中经常需要对字符串进行格式化处理.我们一般使用String.Format()方法,它会将指定字符串中的每个格式项替换为相应对象的值的文本等效项.虽然这很普通,但有时会容易使人迷惑并造成错误.因为 ...

  2. Swift3.0 字符串(string)

    string常用的一些操作方式 //字符串 //1.初始化字符串 //1.1通过字面量赋值的方式初始化字符串 let tempStrig = "this is temp string&quo ...

  3. Swift 4.0 字符串(String)学习

    定义字符串常量(常量只有读操作) let lString = "constant" let lString1: String = "constant" 定义字符 ...

  4. python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

    #python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...

  5. [转]标准C++字符串string以及MFC6.0字符串CString的tokenize和split函数

    标准字符串的方法: /******************************************** the tokenize function for std::string ****** ...

  6. 如果不空null并且不是空字符串才去修改这个值,但这样写只能针对字符串(String)类型,如果是Integer类型的话就会有问题了。 int i = 0; i!=''。 mybatis中会返回tr

    mybatis 参数为Integer型数据并赋值0时,有这样一个问题: mybatis.xml中有if判断条件判断参数不为空时,赋值为0的Integer参数被mybatis判断为空,因此不执行< ...

  7. Java入门篇(五)——Java的字符串/String类

    前面在举例时有出现过String的例子,当时肯定有一部分朋友不知道这个是做什么用的.其实String类是Java中一个比较特殊的类,字符串即String类,它不是Java的基本数据类型之一,但可以像基 ...

  8. Java入门篇(五)——字符串/String类

    前面在举例时有出现过String的例子,当时肯定有一部分朋友不知道这个是做什么用的.其实String类是Java中一个比较特殊的类,字符串即String类,它不是Java的基本数据类型之一,但可以像基 ...

  9. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)

    目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...

  10. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

    在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...

随机推荐

  1. 全球首个百万IOPS云盘即将商业化 阿里云推出超高性能云盘ESSD

    近日,在经过近半年的上线公测后,阿里云全球首个跨入IOPS百万时代的云盘——ESSD即将迎来商业化,单盘IOPS高达100万,这是阿里云迄今为止性能最强的企业级块存储服务. 搭配ECS云服务器使用, ...

  2. working copy is not up-to-date

    解决方法:  在相应文件上,单击选择team,然后选择先更新,然后再提交.这样就好了.

  3. java 操作Oracle 批量入库的问题

    java 操作Oracle 批量入库的问题 先说下我运行的环境: Windows7 64位操作系统 (四核)Intel i5-2300 CPU @2.80GHz 内存4G 硬盘1T Jdk1.6+My ...

  4. shell学习(20)- xargs

    xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可以将单行或多 ...

  5. HZOJ 寿司

    这题也是挺神仙的,现在O(n)的解法还没打出来,只是用O(nlogn)卡过去了(理论上可以过),sdfz某大佬用三分拿到了65分…… 考试连暴力都没打出来…… n2暴力T40: 首先将环拆成链,我们可 ...

  6. mysql 字段名和关键字冲突

    用"(`)"将有冲突的字段框起来,,键盘上1边上那个键. 例: SELECT * FROM yun_roleright WHERE right LIKE '%{13}%'; 上面s ...

  7. Vue6——v-model实现数据双向绑定

    博客地址 :https://www.cnblogs.com/sandraryan/ v-model 用于input标签,用于实现双向绑定,及时把数据的变化渲染在页面 双向绑定及原理 举个双向绑定的简单 ...

  8. VMware station 安装报错 failed to install the hcmon driver

    VMware station 安装报错 failed to install the hcmon driver 1.将 C:\Windows\System32\drivers 下的hcmon.sys改名 ...

  9. HTML5--语法

    一.标记方法 1.内容类型(ContentType)还是.text/html 2.声明:<!DOCTYPE html SYSTEM “about:legacy-compat”> 3.字符编 ...

  10. redux【react】

    首先介绍一下redux就是Flux的一种进阶实现.它是一个应用数据流框架,主要作用应用状态的管理 一.设计思想: (1).web应用就是一个状态机,视图和状态一一对应 (2).所有的状态保存在一个对象 ...