CodeGym /课程 /C# SELF /字符串和文本:string类型,字符串操作

字符串和文本:string类型,字符串操作

C# SELF
第 2 级 , 课程 2
可用

1. 更深入了解string类型

string类型是C#里用得最多的类型之一。也许就是用得最多的。这个类型真的很棒,因为你可以在这种变量里存文本。而且,和intdouble这些类型不一样,string对象有一堆各种各样的函数,用这些函数可以做很多有趣的事。

另外,C#里所有对象(真的所有)都可以转成string类型。或者说,更准确点,C#里所有对象都能返回自己的文本(字符串)表示。我们以后还会多次回到这个类型(它真的很有用也很有意思),不过今天先来了解下它的基础。

创建string类型的变量

string类型就是用来存字符串(文本)的。要在代码里创建一个能存文本的变量,你得用这个命令:

string 名字;
创建 string类型变量

这里名字就是变量名。

例子:

命令 说明
string name; 创建了字符串变量name
string message; 创建了字符串变量message
string text; 创建了字符串变量text

就像intdouble类型一样,也可以用简写方式一次创建多个string类型变量:

string 名字1, 名字2, 名字3;
创建 string类型变量

2. 给string类型变量赋值

要给string类型变量赋值,你得用这个命令:

名字 = "值";
string类型变量赋值

这就是和之前学过的类型的第一个区别。所有string类型的值都是文本字符串,必须用双引号括起来。

例子:

命令 备注
string name = "安雅"; 变量name里存着文本安雅
string city = "New York"; 变量city里存着文本New York
string message = "Hello!"; 变量message里存着文本Hello!

3. 初始化string类型变量

intdouble类型一样,string类型的变量也可以在创建时直接初始化。其实C#里所有类型都可以这样做。所以以后我们就不再特别说这个了。

string 名字1 = "字符串1", 名字2 = "字符串2";
创建 string类型变量

创建和初始化变量的例子

string name = "安雅", city = "New York", message = "Hello!";

只有有值的变量才能用

如果你声明了一个变量但没给它赋值就用,C#编译器会报错。

这种代码是跑不起来的:

string name;
Console.WriteLine(name); // 变量name没有初始化。程序不会编译通过。
int a;
a++; // 变量a没有初始化。程序不会编译通过。
double x;
double y = x; // 变量x没有初始化。程序不会编译通过。

4. 拼接字符串(连接字符串)

有个很有趣又简单的事可以用C#里的字符串做——把它们拼起来。这种操作叫拼接。你也可以记成“拼-接-串”。不过大家一般都叫“字符串拼接”或者直接“字符串加法”。

要拼接两个字符串,用+号就行。超级简单:

"值1" + "值2"
拼接两个字符串

例子:

命令 备注
string name = "安雅" + "安雅"; name里是字符串安雅安雅
string city = "New York" + "安雅"; city里是字符串New York安雅
string message = "Hello! " + "安雅"; message里是字符串Hello! 安雅

当然啦,你可以一次拼很多字符串,也可以拼字符串和变量。

例子:

string name = "安雅";                // name里是字符串安雅
string city = "New York";           // city里是字符串New York
string message = "Hello!" + city + name + city; // message里是字符串Hello!New York安雅New York

5. 空字符串

在上面那个例子里你会发现,message变量里的文本看起来不太好读,因为中间没空格。要加一个或多个空格,只要在代码里写出来并用双引号括起来就行。其实很简单:

" "
包含一个空格的字符串

顺便说下,如果引号里啥都不写(就是两个双引号连着),那就是所谓的“空字符串”:

""
空字符串

一方面它确实存在,但另一方面,输出到屏幕时啥都不会显示。和别的字符串拼接时也啥都不会发生。就像字符串里的“零”一样。

6. 字符串里的特殊字符转义

你已经知道字符串要用双引号括起来。但如果你想在字符串里加引号怎么办?如果直接写引号,编译器会不会以为那是字符串的结尾?

没错,会的。所以字符串里的引号要用\"来写。代码会像这样:

string quote = "他说:\"你好!\"";
Console.WriteLine(quote); // 他说:"你好!"

其实还有点小技巧。\这个符号在字符串里是特殊(控制)字符。用它可以写各种“不可见字符”,比如换行、制表符啥的。要想写出\本身,就得写两个。

下面这4个是最常用的组合:

写法 意思
\n 换行(newline)
\t 制表符(缩进)
\\ 字面上的\
\" 字符串里的引号

例子:

string multiline = "字符串1\n字符串2";
Console.WriteLine(multiline);

输出:

// 字符串1
// 字符串2

7. 字符串插值($字符串)

C#是个很现代的语言,它让你可以很方便地把变量的值插进字符串里,只要在引号前加个$,然后在字符串里用大括号{}。你应该已经知道这个了。

不过你可能还不知道,大括号里其实可以写完整的表达式,甚至还能调用函数!例子:

string name = "欧莉娅";
int birthYear = 1999;

string info = $"我叫{name},我{2025-birthYear}岁。";
Console.WriteLine(info); 	// 我叫欧莉娅,我26岁。

这种写法让代码更好读,也更少出错(括号也少了)。插值的细节我们以后会专门讲,不过简单用法现在就可以放心用了。

8. 字符串自带的方法

string类型有自己的方法(也叫函数)。方法超多,能让程序员省不少事。今天先认识几个最简单的。例子:

方法 说明 结果例子
str.Length 字符串长度 "abc".Length → 3
str.ToUpper() 转成大写 "abc".ToUpper() → "ABC"
str.ToLower() 转成小写 "ABC".ToLower() → "abc"
str.Trim() 去掉两边的空格 " x y ".Trim() → "x y"

字符串方法的例子

这些方法都是这样用的:变量.方法(...)

获取字符串长度:

string name = "安德烈";
int length = name.Length;
Console.WriteLine(length); // 6,因为有6个字母

把字符串转成大写或小写:

string original = "你好";
Console.WriteLine(original.ToUpper()); // 你好
Console.WriteLine(original.ToLower()); // 你好

去掉两边的空格(输入时很有用):

string messy = "   hello   ";
Console.WriteLine(messy.Trim()); // "hello"

每个方法都会返回一个新字符串,原来的字符串不会变

2
任务
C# SELF, 第 2 级, 课程 2
已锁定
创建和初始化字符串变量
创建和初始化字符串变量
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION