8.1什么是字符串
所有文本都可以叫字符串。
字符串在存储上类似数组,不仅字符串的长度可取,而且每一位上的元素也可取.
C#语言中,可以通过
string类
创建字符串
“
做一个项目就是对字符串进行处理,用某种形式显示出来。
”
8.2.1 声明字符串
在C#语言中,
字符串必须包含在一对双引号(“”)之内。
例如“23.23”“ABCDE”“你好”
这些都是字符串常量,字符串常量是系统能够显示的任何文字信息,甚至是单个字符。
在C#中,由双引号(
“”
)包围的都是
字符串
,不能作为其他数据类型来使用,例如“1+2”的输出结果永远也不会是3。
语法
string a;
string a,b,c;
|
string
a
:
相当于
string a =null;
(
null默认值是空值
)
string
:指定该变量为字符串类型。
str
:任意有效的标识符,表示字符串变量的名称。
null
:如果省略null,表示str变量是未初始化的状态,否则,表示声明的字符串的值就等于null。
例如:声明一个字符串变量strName,代码如下:
string strName;
8.2.2
一、字符串的初始化
掌握
1.引用字符串常量
了解
2.利用字符数组实例化
了解
3.提取字符数组中的一部分初始化
![](https://img-blog.csdnimg.cn/71eaed8194e543e4b51160e32aee79d6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
二、利用字符数组初始化
语法
构造方法:
public string(char[]value)
|
![](https://img-blog.csdnimg.cn/678a5d0b20ba4551b1762e5b83b63f9e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
三、提取字符数组中的一部分初始化
语法
构造方法:
public string(char[]value,int offset,int count)
|
![](https://img-blog.csdnimg.cn/6c5f7b99cab04c19afc7d067a9ebef9f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
四、空字符串与空引用的区别
![](https://img-blog.csdnimg.cn/becaa30cede6492f95aeffe0e62fca37.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
我可以获取字符串的那些信息
呢?
![]() |
8.3.1 获取字符串长度→
→
→
→
→
→
→
→
public int Length{get;}
例如:注册账号时碰到的问题
![](https://img-blog.csdnimg.cn/61ea1c6ed1b343c19d48a0f24ba9f62e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
如何获取字符串长度
获取字符串的长度可以使用string类的
Length属性
语法
public int
Length
{get;}
——get是获取的意思
属性可以获取信息
(可读属性)
|
![](https://img-blog.csdnimg.cn/9bc80acc711644219a4c176bbc782228.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
获取字符串长度的注意事项
string str="123
45"
;
123和45之间有一个空格
int
size
=str.Length;
这时的size是6,而不是5
🔺!
!
!
!
Length 属性获取的字符串长度
包括字符串中的空格
。
!
!
!
!🔺
|
![](https://img-blog.csdnimg.cn/4fac4077cace4c7c85597208129d9e2e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
8.3.2 获取指定位置的字符
→
→
→
→
→
→
→
→char chr=str[ ];
语法
public char this [int index]{get;}
int index→获取字符所在位置
|
![](https://img-blog.csdnimg.cn/148c3f41fea54537aa701ef35e6e9fba.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/72c5fc6907b144d598c368f93a6fdf45.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_19,color_FFFFFF,t_70,g_se,x_16)
8.3.3 获取子字符串索引位置
两种方式:从开始往后进行查找
从后往前进行查找
![](https://img-blog.csdnimg.cn/fd693c5053ac4a24bc92b57636966db2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
一、从指定位置开始获取第一次出现的索引
语法
public int IndexOf(stringvalue,int startIndex)
注: value(要获取的子字符串)
startIndex( 起始位置)
|
![](https://img-blog.csdnimg.cn/be7608c3d4054ee78eae6ed39f6beda3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_18,color_FFFFFF,t_70,g_se,x_16)
(返回e在索引3之后出现的位置)
二、从指定位置开始起数个字符内获取第一次出现的索引
语法
public int IndexOf (string value ,int startIndex ,int count)
注: value(要获取的子字符串)
startIndex( 起始位置)
count(要检查的字符数)
|
![](https://img-blog.csdnimg.cn/fc9b004e7281445381a56727d0e2ff22.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_18,color_FFFFFF,t_70,g_se,x_16)
▲e字符在字符串的索引位置
(indexof)
![](https://img-blog.csdnimg.cn/ce594568280f4c02aa3dc5c347196a8c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
三、获取最后一次出现的索引
语法
public int LastIndexOf(string value)
注: value(要获取的子字符串)
|
![](https://img-blog.csdnimg.cn/3af5a3d433064766bda6c6734e034ab5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
四、从指定位置开始获取
最后一次出现的索引
语法
public int LastIndexOf(string value,int startIndex)
注: value(要获取的子字符串)
startIndex(起始位置)
|
![](https://img-blog.csdnimg.cn/6061bf625de742d7a0a841886b305a12.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
五、从指定位置开始起数个字符内获取
最后一次出现的索引
语法
public int LastIndexOf(string value,int startIndex,int count)
注: value(要获取的子字符串)
startIndex(起始位置)
count(要检查的字符数)
|
![](https://img-blog.csdnimg.cn/c4f67181f00d47b6b402035cd80de316.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
返回值:①如果找到字符或字符串,则为value的从零开始的索引位置;
②如果未找到字符或字符串,则为-1。
▲某字符串最后一次出现字符的位置 (Lastindexof)
六、判断子字符串是否存在
![](https://img-blog.csdnimg.cn/41b32da6cd4c46c288348ff0c9bac954.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
8.3.4 判断字符串首尾内容
▲使用
EndsWith
我们就知道文件是不是以我们设想的
文件类型结尾
语法
public bool
Ends
With(string value)
注: value(要对比的子字符串)
|
例子(文件名是不区分大小写的)
但是文件中要加true可以忽略大小写
![](https://img-blog.csdnimg.cn/7122febe4ef04a3584ab81f22b23c67f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_15,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/23278b0656ea461d86397c3717e76dd1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_16,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/3a75524411d1417ca771cfc46ff58a89.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)
▲判断字符串句首内容
语法
public bool StartsWith(string value)
public bool Starts With(string value,bool ignoreCase,CultureInfo culture)
|
![](https://img-blog.csdnimg.cn/50bd17cc2999436e9ebbef6681c0af1f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAOTlMQU4=,size_20,color_FFFFFF,t_70,g_se,x_16)