C#数组和串操作有哪些
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要介绍"C#数组和串操作有哪些",在日常操作中,相信很多人在C#数组和串操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C#数组和串操作有哪些"的疑惑
千家信息网最后更新 2024年11月20日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安全错误
数据库的锁怎样保障安全
心蕊网络技术有限公司
阿里的服务器在湖底
中国知网包含的源数据库
服务器功率调节器模式
lorawan服务器哪家好
虚拟网络技术
电脑总是弹出服务器怎么办
计算机网络技术简历优势怎么写
吴忠市公安局网络安全保卫支队
ccna和网络安全
华为服务器保修期查询
电驴连接kad还是服务器
清除服务器蠕虫病毒
自动化专业可也做软件开发
计算机基础软件开发
网络安全框架哪几种
江西省网络安全领导小组
网络安全课设web渗透软件
国家网络安全法主题班会
软件开发师实习周记
未转变者如何进入自己创的服务器
安卓实例数据库
数据库为何 码表
ctf网络安全大赛选择题
软件开发综合实训心得体会
火箭队计算机网络技术
字节跳动教育软件开发
软件开发档案管理规程
公安机关网络安全工作
中国网络安全法宣传时间