C#中String的常用方法

[特点]

1.可以看作是一个只读的char数组

2.不可变性,即字符串中的字符内容不能改,,当重新给改变量赋值时,知识变量的指向改变了,但可以读。如果我      想”改变“字符串中字符的内容,怎么办那?(实际上原字符串的内容没有改变)

   解决方案:利用char数组进行修改

   1>把字符串变成字符数组,toCharArray()
   2>对字符数组进行修改
   3>把字符数组变成字符串,new string

   举例:

string text = "我又漂亮了";
char[] chs = text.ToCharArray();
chs[1]='很';
text=new string(chs);
Console.WriteLine(text);
Console.ReadKey();

[有关字符串的操作]

      字符串的方法分为静态方法和非静态方法,当方法是静态方法时,方法前应加String,即格式为String.方法名(7,8都是静态方法)


1.Upper,Lower,Equals的用法

  Upper:将字母转化为大写

  Lower:将字母转化为小写

  Equals:忽略字母的大小写

Console.WriteLine("请输入字符串");
string str1 = Console.ReadLine();
str1 = str1.ToUpper();
Console.WriteLine("请输入字符串");
string str2 = Console.ReadLine();
str2 = str2.ToUpper();  //转化成大写
bool result = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);
if (result)
{
    Console.WriteLine("输入意思相同");
}
else
{
   Console.WriteLine("输入意思不同");
}
   Console.ReadKey();

2.Split:分割字符串

    Replace:替换某个字符串

    Countain:判断某字符串中是否包含某字符串

string text = "好好玩耍,天天快乐";
bool result = text.Contains("好好玩耍");
if (result)
{
    string[] str = text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
    if (str[0].Contains("好好玩耍"))
    {
       str[0].Replace("玩耍", "学习");
    }
    Console.WriteLine("{0},{1}", str[0], str[1]);
}
 else
 {
    Console.WriteLine(text);
 }
Console.ReadKey();

3.StartWith、EndWith的用法

  判断某个字符串是否以某个字符串开始(startwith)或以某个字符串结束(endwith)

string text = "天气真清新";
bool result = text.EndsWith("清新");
if (result)
{
  Console.WriteLine("是的");
}
   else
{
Console.WriteLine("不是");
}
Console.ReadKey();

4.indexof 的用法:判断某个字符在字符串中的索引,可以从同开始找,也可以从某个索引开始找,如果没有该字符,   则返回-1,有则返回该字符在该字符串中的索引

  查找该字符的最后一个索引,用LastIdexOf

int index = path.IndexOf("练习", 25);


5.substring的用法:截取字符串中的一段字符

string path = @"C:\Users\SHUANG\Desktop\练习.txt";
int order = path.LastIndexOf("\\");
string name = path.Substring(order + 1);
Console.WriteLine("文件名为:{0}", name);
Console.ReadKey();

6.insert的用法:在字符串的某个索引前插入值

string text = "我是一名学生";
text = text.Insert(4, "好");
Console.WriteLine(text);
Console.ReadKey();

   运行结果为:我是一名好学生


7.strign,join的用法

string[] text = { "火龙果", "香蕉", "苹果", "芒果" };
Console.WriteLine(string.Join("|", text));
Console.ReadKey();

  

  运行结果为:火龙果|香蕉|苹果|芒果

  insert与join的区别:join是在字符串数组的前提下操作的,在每个数组元素中间插入内容,而inset是对字符串操        作,  在某个索引前插入内容;


8.string.IsNullOrEmpty() 的用法:判断该字符串是否为空后NULL

string text = null;
bool result = string.IsNullOrEmpty(text);
if (result)
{
    Console.WriteLine("没信息");
}
else
{
    Console.WriteLine("有信息");
}
    Console.ReadKey();

NULL与" "空字符串的区别:

NULL:不分配内存,无对象

“ ”:分配内存空间,有对象


9.Trim的用法 

  Trim是去掉字符串两端的空格

  TrimEnd是去掉字符串最后面的空格

  TrimStart是去掉字符串最前面的空格

string text = "  好天气   ";
text = text.Trim();

10.Format 的用法

Console.WriteLine(string.Format("{0:0.00}", 352435.345435));

   

   运行结构为:352435.35

   Format的用法还有待研究:这是我发现写的不错的一篇有关Format使用方法的介绍:

   http://www.jb51.net/article/57216.htm

11.File.Read的用法:读取某文件的内容

string path = @"C:\Users\SHUANG\Desktop\练习.txt";
string[]text=File.ReadAllLines(path,Encoding.Default);
for (int i = 0; i < text.Length; i++)
{
    string[] str = text[i].Split(new char[] { ' '}, StringSplitOptions.RemoveEmptyEntries);              
    Console.WriteLine(str[0].Length > 8 ? (str[0].Substring(0, 8) + "...|" + str[1]) : (str[0] + "|" + str[1]));
}
Console.ReadKey();

[注意]

       可以发现上面所有的方法都不可避免的会声明string字符串变量,在大数据下或对一个string变量不断更改时,最好不用string类型,为什么?

String的工作原理:一旦被运算,就会产生一个实例,在.NET中,在修改字符串时,会把两个字符串写入内容中,然后删除先前的是string对象,然后重新声明一个string对象,然后从内存中读取字符串,再赋给string变量

StringBuild的工作原理:在C#中的System.Text中,是在原来的string对象上直接修改字符串

相比之下:在面对大数据时,用StringBuild会比用String节省很多时间









 
  

你可能感兴趣的:(基础,------C#,C#)