字符串的处理

String

构造方法

1.string(char[]value)
把char数组变成字符串

char[] cha = { 'e', 'b', 'c' };
string str = new string(cha);
Console.WriteLine(str);

//ebc

2.string(char c,int count)
生成一个由count个c组成的字符串

string str = new string('q',5);
Console.WriteLine(str);

//qqqqq

常用属性

1.int string.Length()
获取字符串的长度

string str=”asdffd”;
Console.WriteLine(str.Length);

//6

2.索引

string str = "qwe";
Console.WriteLine(str[0]);

//q

常用方法

1.string string.Insert(int startIndex,string value)
在指定索引位置插入指定字符串

string str = "aaaaa";
str=str.Insert(2, "b");
Console.WriteLine(str);

//aabaaa

2.string string.Join(string separator,params string[] value)
为静态方法,串联字符串数组的所有元素,在每个元素中使用指定的分隔符

char[] cha = { 'a', 'a', 'a', 'a', };
string s = string.Join("-",cha);
Console.WriteLine(s);

//a-a-a-a

3.运算符+
4.string string.Concat(string[])
把字符串数组里的元素连接成一个字符串,相当于string.Join(“”,string[])
5.string string.PadLeft(int totalWidth,char paddingchar)
在字符串左边填充一定paddingchar,直到字符串长度为totalWidth

 string str = "qqqwwwee";
str = str.PadLeft(20, ' ');
Console.WriteLine(str);

//            qqqwwwee

6.string string.PadRight(int totalWidth,char paddingchar)
在字符串右边填充

1.1string string.Substring(int startIndex)
取从位置startIndex开始一直到最后的子字符串

string str = "AAAAAbbccc";
str=str.Substring(3);
Console.WriteLine(str);

//AAbbccc

1.2string string.Substring(int startIndex,int length)
取从位置starIndex开始,长度为length的子字符串,如果子字符串的长度不足length则报错

string str = "AAAAAbbccc";
str = str.Substring(2, 4);
Console.WriteLine(str);

//AAAb

2.1string string.Remove(int startIndex)
从startIndex开始删除,返回一个新的字符串

string str = "qqqwwwee";
str = str.Remove(2);
Console.WriteLine(str);

//qq

2.2string string.Remove(int startIndex,int count)
从startIndex开始删除,删除count个
3.string string.Trim()
删除字符串前后的空格

string str = "    qqqwwwee    ";
str = str.Trim();
Console.WriteLine(str);

//qqqwwwee

4.string string.TrimEnd()
删除后面的空格
5.string string.TrimStart()
删除前面的空格

1.string string.ToLower()
得到字符串的小写形式

string str=”AbCd”;
Console.WriteLine(str+”=====”+str.ToLower());

//AbCd=====abcd

2.string string.ToUpper();
得到字符串的大写形式
3.string string.Replace(string oldValue,string newValue)
将字符串中的出现oldValue的地方替换为newValue

string str = "AAAAAccc";
str=str.Replace("A","B");
Console.WriteLine(str);

//BBBBBccc

4.char[] string.ToCharArray()
把字符串转换成字符数组

string str = "ab";
char []cha=str.ToCharArray();

for (int i = 0; i <cha.Length; i++)
      {
          Console.WriteLine(cha[i]);
      }

//a
//b

5.string string.Format(string format,object arg0)
用法和Console.WriteLine差不多

string a = "a";
string b = "b";

string str = string.Format("{0}:::{1}", a, b);

Console.WriteLine(str);

//a:::b

1.bool string.Contains(string value)
判断字符串中是否含有字串value,为true则包含

string str = "AAAAAbbccc";
bool result = str.Contains("Ab");

2.bool StartsWith(string value)
判断字符串是否以子字符串value开始
3.bool EndsWith(string value)
判断字符串是否以子字符串value结束
4.1int IndexOf(string value)
找第一个子字符串value的索引,如果没有这个子字符串则返回-1

string str = "AAAAAbbccc";
int a = str.IndexOf("b");
Console.WriteLine(a);

//5

4.2int IndexOf(string value,int startIndex)
从startIndex开始找第一个子字符串value的索引,找不到就返回-1

string str = "AAAAAbbccc";
int a = str.IndexOf("A",3);
Console.WriteLine(a);

//3

5.int LastIndexOf(string value)
找最后一个子字符串的索引

string str = "AAAAAbbccc";
int a = str.LastIndexOf("A");

//4

6.int string.IndexOfAny(char [] anyOf)
字符数组中的任意字符在此字符串中的第一个匹配项的索引

string str = "qqqwwwee";
char []cha = { 'c', 'w' };
int a = str.IndexOfAny(cha);
Console.WriteLine(a);

//3

7.bool string.IsNullOrEmpty(string value)
如果value的值为null或空,则为true

string str=null;
bool result=string.IsNullOrEmpty(str);

其他

1.bool string.Equals(string value,StringComparison.OrdinalIgnoreCase)
忽略大小写比较是否相等,返回一个bool值,True则相等

string str1 = "sdfsf";
string str2 = "sdfsfsf";
bool result=str1.Equals(str2, StringComparison.OrdinalIgnoreCase);

2.string[] Split(char[] separator, StringSplitOptions options)
将字符串按照指定的char分割符分割为字符串数组( options 取RemoveEmptyEntries的时候移除结果中的空字符串)

string str = "qqq  ww ee------rrr-t";
char[] cha = { '-',' ' };

string[] result = str.Split(cha, StringSplitOptions.RemoveEmptyEntries);

for (int i = 0; i < result.Length; i++)
{
     Console.Write(result[i]);
}

//qqqwweerrrt

3.int string.CompareTo(string strB)
若字符串在strB之前,返回-1,在之后返回1,在同一位置,返回0

string str1 = "ab";
string str2 = "bc";
int result = str1.CompareTo(str2);
Console.WriteLine(result);

//-1

StringBuilder

String类是一种传统的修改字符串的方式,系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。
而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。
一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。

//  普通方法
Stopwatch sp1 = new Stopwatch();
sp1.Start();

string s = "";
for (int i = 0; i < 100000; i++)
{
     s += i.ToString();
}

sp1.Stop();
Console.WriteLine("所用时间为{0}",sp1.Elapsed);       
Console.ReadKey();

//所用时间为00:00:44.6834545


//用StringBuilder
Stopwatch sp1 = new Stopwatch();
sp1.Start();

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100000; i++)
{
     sb.Append(i.ToString());//相当于s+=
}

sp1.Stop();
Console.WriteLine("所用时间为{0}",sp1.Elapsed);
Console.ReadKey();

//所用时间为00:00:00.0244072

常用方法

1.Append
将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处

StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Append(" What a beautiful day.");
Console.WriteLine(MyStringBuilder);

//Hello World! What a beautiful day.

2.AppendLine
添加之后换行
3.AppendFormat
和Format很像
4.ToString
将StringBulider类型转换成String类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值