C# 语言类型(二)—预定义类型之字符串及字符类型简述

总目录
C# 语法总目录
参考链接:
C#语法系列:C# 语言类型(一)---预定义类型值之数值类型
C#语法系列:C# 语言类型(二)---预定义类型之字符串及字符类型简述
C#语法系列:C# 语言类型(三)---数组/枚举类型/结构体
C#语法系列:C# 语言类型(四)---传递参数及其修饰符
C#语法系列:C# 语言类型(五)---其他

C# 语言类型 二---预定义类型:字符串及字符类型简述

字符串和字符类型简述

(1) 字符类型基本用法

  字符类型表示一个Unicode字符或者一个转义字符,占用两个字节,字符类型可以直接转换成short类型,转成其他类型需要显示转换。

csharp 复制代码
char a = 'A';
char a = '\n'; 
(2) 字符串类型基本用法

  字符串类型是引用类型,但是却遵循 == 运算时是进行值的比较,字符串类型无法使用 > < ,只能使用CompareTo方法

csharp 复制代码
string a = "hello";
string b = "nihao";
string c = "hello";
int v = a.CompareTo(b);
Console.WriteLine(a==c);
Console.WriteLine(v);
Console.ReadLine();
--输出
True
-1
@符号

  string类型中,可以使用@表示内部不支持转义字符,所有的字符就是字符,没有别的意思。

注意 @符号因为还需要左右"" 两个引号把字符串框起来,所以在它们内部如果想输出双引号,那么需要两个双引号来表示一个双引号

csharp 复制代码
string a = "\n\n";	//输出两个换行
string b = @"\n\n";	//输出字符 \n\n
//两个双引号
string c = @"{name=""xiaoli""}"	//输出 {name="xiaoli"}
$ 符号

  字符串插值,C#6.0版本以上才有,使用插值的使用,还可以使用冒号进行插值的格式化,略。

csharp 复制代码
int a = 10;
string b = $"num is {a}";
Console.WriteLine(b);

--输出
num is 10
$ 和 @ 结合使用

结合使用可以让插值字符串换行,但是必须 $ 在 @ 前面

csharp 复制代码
int a = 10;
string b = $@"num is {
a}, hhhhhh";
Console.WriteLine(b);
--输出
num is 10, hhhhhh
连接字符串

  直接使用 + 加号可以直接连接字符串,但是,更好的解决方案是StringBuilder类型,如果需要频繁大量的连接字符串,那么请使用StringBuilder

csharp 复制代码
string a = "abc"+"d";

StringBuilder sb = new StringBuilder();
sb.Append("aa");
Console.WriteLine(sb.ToString());	//输出  aa

总目录
C# 语法总目录
参考链接:
C#语法系列:C# 语言类型(一)---预定义类型值之数值类型
C#语法系列:C# 语言类型(二)---预定义类型之字符串及字符类型简述
C#语法系列:C# 语言类型(三)---数组/枚举类型/结构体
C#语法系列:C# 语言类型(四)---传递参数及其修饰符
C#语法系列:C# 语言类型(五)---其他

相关推荐
北冥you鱼几秒前
Go 语言 Channel 机制详解:从原理到实战
开发语言·后端·golang
谢亮_vipxieliang3 分钟前
Go 并发控制进阶:sync 包高级原语与 Context 生命周期管理
开发语言·后端·golang
xuxigifxfh19 分钟前
HJ5 进制转换
java·开发语言·华为机考
denlaku20 分钟前
JDK 12 新特性详解
java·开发语言
Nebula_g25 分钟前
JavaSE拓展:可变参数
java·开发语言·算法·安全·javase·可变参数
anew___1 小时前
《从零手写操作系统 (30):环境变量与进程上下文——export/unset与继承语义》
java·开发语言·网络·jvm·算法
Cx330❀1 小时前
Qt 多线程深度解析:从底层原理到 UI 线程与同步实战
开发语言·qt·ui·搜索引擎·性能优化·图形渲染
谢亮_vipxieliang1 小时前
Go GMP调度模型——从原理到实战的完整指南
开发语言·网络·golang
UIU1141 小时前
头文件可以防什么错?运用头文件做声明
c++·学习·c#
聪明蛋子哟2 小时前
Python与Java双栈实战:手撸一个支持RAG与Tool Calling的高性能Agent框架
java·开发语言·python