C#String和StringBuilder的用法
来源:互联网 发布:c语言判断时间间隔 编辑:程序博客网 时间:2024/06/01 10:36
C#String和StringBuilder的用法
String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。
StringBuilder 类解决了对字符串进行重复修改的过程中创建大量对象的问题。初始化一个StringBuilder 之后,它会自动申请一个默认的StringBuilder 容量(默认值是16),这个容量是由Capacity来控制的.并且允许,我们根据需要来控制Capacity的大小,也可以通过Length来获取或设置StringBuilder 的长度.
当需要对字符串频繁操作时优先使用StringBuilder,stringBuilder会更高效。
下面是string的常用方法:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 练习测试{ class Program { static void Main(string[] args) { //1.索引访问字符 string s = "abcd"; Console.WriteLine(s[3]); Console.WriteLine("--------------------------------------------------------------"); //2.打散为字符 string.ToCharArray() string s1 = "abcd"; char[] c1 = s1.ToCharArray(); for (int i = 0; i < c1.Length; i++) { Console.WriteLine(c1[i]); } Console.WriteLine("--------------------------------------------------------------"); //3截取字符串 string.Substring string s2 = "abcd"; Console.WriteLine(s2.Substring(3)); //截取索引3后面所有的字符 Console.WriteLine(s2.Substring(1,3));//截取索引1开始截取三个字符 Console.WriteLine("--------------------------------------------------------------"); //4匹配索引 string.IndexOf() string.Lastindexof() string s3 = "abcabcdabc"; Console.WriteLine(s.IndexOf("a")); // 从字符串头部开始搜索第一个匹配字符A的位置索引,输出"0" Console.WriteLine(s.IndexOf("bcd")); // 从字符串头部开始搜索第一个匹配字符串BCD的位置,输出"4" Console.WriteLine(s.LastIndexOf('c')); // 从字符串尾部开始搜索第一个匹配字符C的位置,输出"5" Console.WriteLine(s.LastIndexOf("ab")); // 从字符串尾部开始搜索第一个匹配字符串BCD的位置,输出"3" Console.WriteLine(s.IndexOf("E")); // 从字符串头部开始搜索第一个匹配字符串E的位置,没有匹配输出"-1"; Console.WriteLine("--------------------------------------------------------------"); //5.判断是否包含字符串 string.Contains() string s4 = "abcd"; Console.WriteLine(s4.Contains("bc")); Console.WriteLine("--------------------------------------------------------------"); //6.大小写转换string.ToUper() string.ToLower() string s5 = "abcd"; Console.WriteLine(s5.ToUpper()); //转为大写 Console.WriteLine(s5.ToLower()); //专为小写 Console.WriteLine("--------------------------------------------------------------"); //7.截头去尾 string.Trim() string s6 = "__AB__CD__"; Console.WriteLine(s6.Trim('_')); // 移除字符串中头部和尾部的'_'字符,输出"AB__CD" Console.WriteLine(s6.TrimStart('_')); // 移除字符串中头部的'_'字符,输出"AB__CD__" Console.WriteLine(s6.TrimEnd('_')); // 移除字符串中尾部的'_'字符,输出"__AB__CD" //8插入和删除(Insert和Remove) Console.WriteLine("--------------------------------------------------------------"); string s7 = "ADEF"; Console.WriteLine(s7.Insert(1, "BC")); // 在字符串的第2位处插入字符串"BC",输出"ABCDEF" Console.WriteLine(s7); Console.WriteLine(s7.Remove(1)); // 从字符串的第2位开始到最后的字符都删除,输出"A" Console.WriteLine(s7); Console.WriteLine(s7.Remove(0, 2)); // 从字符串的第1位开始删除2个字符,输出"EF" Console.WriteLine(); Console.WriteLine("--------------------------------------------------------------"); //9替换字符(串)(Replace) string s8 = "A_B_C_D"; Console.WriteLine(s8.Replace('_', '-')); // 把字符串中的'_'字符替换为'-',输出"A-B-C-D" Console.WriteLine(s8.Replace("_", "")); // 把字符串中的"_"替换为空字符串,输出"A B C D" Console.WriteLine(); Console.WriteLine("--------------------------------------------------------------"); //10分割为字符串数组(Split) string s9 = "ab,cd,ef,gg"; string[] arr = s9.Split(','); Console.WriteLine(arr[2]); Console.WriteLine("--------------------------------------------------------------"); //(11)格式化(静态方法Format) Console.WriteLine(string.Format("{0} + {1} = {2}", 1, 2, 1 + 2)); Console.WriteLine(string.Format("{0} / {1} = {2:0.000}", 1, 3, 1.00 / 3.00)); Console.WriteLine(string.Format("{0:yyyy年MM月dd日}", DateTime.Now)); Console.WriteLine("--------------------------------------------------------------"); //12.Equals 比较两个字符串是否相等 string str1="asd"; string str2="ert"; bool b = str1.Equals(str2); //b=false; Console.WriteLine(b); //13.IsNullOrEmpty判断字符是否为null或者为空,返回值为bool; string str11 = "hahha"; bool b1 = string.IsNullOrEmpty(str11);//b1=false; string str22 = ""; bool b2 = string.IsNullOrEmpty(str22);//b2=true; Console.ReadKey(); } }}
下面是stringBuilder的常用方法:
(1)Append 方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处。以下示例将一个 StringBuilder 对象初始化为“Hello World”,然后将一些文本追加到该对象的结尾处。将根据需要自动分配空间。
StringBuilder MyStringBuilder = new StringBuilder(“Hello World!”);
MyStringBuilder.Append(” What a beautiful day.”);
Console.WriteLine(MyStringBuilder);
此示例将 Hello World! What a beautiful day. 显示到控制台。
(2)AppendFormat 方法将文本添加到 StringBuilder 的结尾处,而且实现了 IFormattable 接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到 StringBuilder 的后面。以下示例使用 AppendFormat 方法将一个设置为货币值格式的整数值放置到 StringBuilder 的结尾。
int MyInt = 25;
StringBuilder MyStringBuilder = new StringBuilder(“Your total is “);
MyStringBuilder.AppendFormat(“{0:C} “, MyInt);
Console.WriteLine(MyStringBuilder);
此示例将 Your total is $25.00 显示到控制台。
(3)Insert 方法将字符串或对象添加到当前 StringBuilder 中的指定位置。以下示例使用此方法将一个单词插入到 StringBuilder 的第六个位置。
StringBuilder MyStringBuilder = new StringBuilder(“Hello World!”);
MyStringBuilder.Insert(6,”Beautiful “);
Console.WriteLine(MyStringBuilder);
此示例将 Hello Beautiful World! 显示到控制台。
(4)可以使用 Remove 方法从当前 StringBuilder 中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。以下示例使用 Remove 方法缩短 StringBuilder。
StringBuilder MyStringBuilder = new StringBuilder(“Hello World!”);
MyStringBuilder.Remove(5,7);
Console.WriteLine(MyStringBuilder);
此示例将 Hello 显示到控制台。
(5)使用 Replace 方法,可以用另一个指定的字符来替换 StringBuilder 对象内的字符。以下示例使用 Replace 方法来搜索 StringBuilder 对象,查找所有的感叹号字符 (!),并用问号字符 (?) 来替换它们。
StringBuilder MyStringBuilder = new StringBuilder(“Hello World!”);
MyStringBuilder.Replace(‘!’, ‘?’);
Console.WriteLine(MyStringBuilder);
- C#String和StringBuilder的用法
- C#: StringBuilder的用法及和String的区别
- StringBuilder的用法以及StringBuilder和String的区别 ?
- StringBuilder 和 String 的区别?StringBuilder的用法
- Java:String、StringBuffer和StringBuilder的用法
- [我眼中的C#]String和StringBuilder
- Java String,StringBuilder和StringBuffer的用法和区别
- String、StringBuffer和StringBuilder的异同和用法
- Java中String ,StringBuffer和StringBuilder的区别和用法
- String和StringBuilder(C#)
- 【C#】StringBuilder和string对比
- StringBuilder的用法及和String的区别
- StringBuilder的用法详解及和String的区别
- StringBuilder的用法及和String的区别
- String的用法、StringBuffer和StringBuilder之间的区别
- String,StringBuffer与StringBuilder的区别和用法
- C#中StringBuilder用法以及和String的区别分析
- 黑马程序员--String,StringBuilder和StringBuidler的特点与用法
- JMeter简单的GET请求,参数化
- 冒泡排序-JAVA
- C# DataGridView添加右键菜单等技巧
- 数据结构几种常用排序算法总结
- linux下清除tomcat缓存
- C#String和StringBuilder的用法
- zookeeper kafka基本配置
- jquery事件委托的回调函数中调用全局变量的简单方法
- 模运算的世界--线性同余方程组
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
- vs2015如何设置类或函数前不显示引用的数量
- 功能测试用例设计策略
- 读书01《知道做到》
- IAR编译出现“xxxxxxxx" declared implicity”