C#数组和串操作有哪些
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"C#数组和串操作有哪些",在日常操作中,相信很多人在C#数组和串操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C#数组和串操作有哪些"的疑惑
千家信息网最后更新 2026年11月03日C#数组和串操作有哪些
这篇文章主要介绍"C#数组和串操作有哪些",在日常操作中,相信很多人在C#数组和串操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C#数组和串操作有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
关于C#数组和C#串操作:
1)串是由连续存储的字符组成
2)C#中的串具有恒定不变的特性,即 一旦被创建,就不能改变长度或者改变其中任何的字符。
3)串的连接、插入和删除等操作都是生成了新串而没有改变原串。
4)继承自 System.object。所以是引用类型(int,bool,char 等都是struct 不是class,是值类型)。
5)System.String 是密封类,所以不能被继承。
6)虽然System.String 是引用类型,但C#中将String 看作是基元类型,所以不用 new操作符创建实例,而是使用字符串驻留的机制。
7)System.String 继承自 IComparable, ICloneable, IConvertible, IComparable, IEnumerable, IEnumerable, IEquatable。
8)C#提供了StringBuilder类型来支持高效地动态创建字符串。
下面是自定义一个string类,类中包含一个字段,用以存放字符序列的C#数组,还有一些常用的C#串操作。
public class StringDS { private char[] data;//char数组 //索引器 public char this[int index] { get { return data[index]; } set { data[index] = value; } } //构造函数 public StringDS(char[] arr) { data = new char[arr.Length]; for (int i = 0; i < arr.Length; i++) { data[i] = arr[i]; } } //构造函数 public StringDS(int len) { char[] arr = new char[len]; data = arr; } //求串长 public int GetLength() { return data.Length; } //串比较 public int Compare(StringDS s) { int len=((this.GetLength()<=s.GetLength())? this.GetLength():s.GetLength()); int i = 0; for (i = 0; i < len; ++i) { if (this[i] != s[i]) { break; } } if (i <= len) { if (this[i] < s[i]) { return -1; } else if (this[i] > s[i]) { return 1; } } else if (this.GetLength() == s.GetLength()) { return 0; } else if (this.GetLength() < s.GetLength()) { return -1; } return 1; } //求子串 public StringDS SubString(int index, int len) { if ((index<0) || (index>this.GetLength()-1) || (len<0) || (len>this.GetLength()-index)) { Console.WriteLine("Position or Length is error!"); return null; } StringDS s = new StringDS(len); for (int i = 0; i < len; ++i) { s[i] = this[i + index-1]; } return s; } //串连接 public StringDS Concat(StringDS s) { StringDS s1 = new StringDS(this.GetLength() +s.GetLength()); for (int i = 0; i < this.GetLength(); ++i) { s1.data[i] = this[i]; } for (int j = 0; j < s.GetLength(); ++j) { s1.data[this.GetLength() + j] = s[j]; } return s1; } //串插入 public StringDS Insert(int index, StringDS s) { int len = s.GetLength(); int lenlen2 = len + this.GetLength(); StringDS s1 = new StringDS(len2); if (index < 0 || index > this.GetLength() - 1) { Console.WriteLine("Position is error!"); return null; } for (int i = 0; i < index; ++i) { s1[i] = this[i]; } for(int i = index; i < index + len ; ++i) { s1[i] = s[i - index]; } for (int i = index + len; i < len2; ++i) { s1[i] = this[i - len]; } return s1; } //串删除 public StringDS Delete(int index, int len) { if ((index < 0) || (index > this.GetLength() - 1) || (len < 0) || (len > this.GetLength() - index)) { Console.WriteLine("Position or Length is error!"); return null; } StringDS s = new StringDS(this.GetLength() - len); for (int i = 0; i < index; ++i) { s[i] = this[i]; } for (int i = index + len; i < this.GetLength(); ++i) { s[i] = this[i]; } return s; } //串定位 public int Index(StringDS s) { if (this.GetLength() < s.GetLength()) { Console.WriteLine("There is not string s!"); return -1; } int i = 0; int len = this.GetLength() - s.GetLength(); while (i < len) { if (this.Compare(s) == 0) { break; } } if (i <= len) { return i; } return -1; } }到此,关于"C#数组和串操作有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
C#
数组
字符
类型
学习
函数
字符串
更多
帮助
实用
恒定
接下来
不用
中将
字段
实例
常用
序列
操作符
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
博彦科技互联网金融
互联网科技公司经营范围
百单互联网科技有限公司
互联网科技公司名称
多迪互联网科技有限公司
金融科技和互联网金融
中国最先进互联网科技公司
北京三清互联网科技
互联网科技产品
济南华为互联网科技产业总部基地
贵州叶脉互联网科技有限公司所属行业
武汉健翔互联网络科技有限公司
中国航天科技大学国际工业互联网
知域互联网科技有限公司大骗子
亳州好赞互联网科技有限公司
民营互联网公司国防科技
燊美集互联网科技有限公司
美国互联网科技公司
宇信科技在杭州互联网排第几
互联网科技创新创业项目
互联网科技活动banner
腾讯阿里互联网科技
壹账通互联网科技
大白互联网科技
佩信高科技互联网
北京大学互联网科技怎么样
中和天地互联网科技有限公司
互联网营销推广黑科技
半导体是互联网高科技吗
互联网时代高科技布局