
Code
1
class MyString
2
{
3
static void Main(string[] args)
4
{
5
string s1 = "my";
6
string s2 = "my";
7
// 比较两个字符串 str1,str2的大小,如果大于返回正数,等于返回0,小于返回负数!
8
9
if (string.Compare(s1, s2) == 0)
10
{
11
Console.WriteLine("s1 等于 s2 ");
12
}
13
14
// IndexOf——定位字符串中第一次出现某个给定字符串的位置,下标从零开始
15
// 如果找到该字符,则为 value 的索引位置;否则如果未找到,则为 -1。
16
17
Console.WriteLine(s1.IndexOf("y"));
18
19
// PadLeft和PadRight——在字符串的开始和结尾用指定的字符填充字符串
20
//ToLower和ToUpper把字符串转换为小写或大写形式
21
//Trim——删除首尾空白
22
//String.Replace——用指定的字符替换字符串中的指定
23
24
25
26
27
28
string re = "china";
29
30
Console.WriteLine(re.Replace('a', 'e'));
31
32
Console.WriteLine(re.Replace("i", "L"));
33
34
35
36
37
/**//*
38
*
39
*
40
* 程序首先创建一个System.String 类型的对象并初始化为“china”。
41
* 此时编译程度会分配足够的内存来保存这个文本串。并用变量str来表示这个实例。
42
* 当执行str+="chinee"时,系统会创建一个新的实例,并分配足够的内存来保存复合后的文本。
43
* 然后用变量str来表示这个新的字符
44
* 当要进行大规模的字符替换与调整操作时,使用字符串来操作将严重影响性能
45
* 使用stringbuider
46
*/
47
48
49
string str = "china";
50
str += "chinee";
51
Console.WriteLine(str);
52
53
54
/**//*
55
* StringBuilder类并没有String 类的功能强大,
56
* 只提供基本的替换和添加和删除字符串中的文本,
57
* 但它的工作效率非常高,
58
* 当定义StringBuilder对象时可以指定内存的内存容量,
59
* 如果不指定系统就会根据对象初始化时的字符串长度来确定。
60
* 它有两个主要参数Length和Capacity分别表示字符串的实际长度和字符串占据的内存空间长度。
61
* 对字符串的修改就是在这个内存中进行的,
62
* 大大提高了添加和替换的的效率。
63
*/
64
65
66
StringBuilder sb = new StringBuilder("china", 100);//初始化对象并设置初始容量为100
67
sb.Append(" to www.csdn.net");
68
69
70
StringBuilder sb1 = new StringBuilder("china");//定义初值为www.csdn.net的对象。
71
StringBuilder sb2 = new StringBuilder(20); //初始化容量为20的空对象。
72
//另外StringBuilder还有MaxCapacity属性用来限定对象可以使用的最大容量。默认大约是int.MaxValue(20亿)
73
//可以在使用过程中定义sb.MaxCapacity=value;
74
sb.Append();//给当前字符串追加字符串。
75
sb.AppendFormat();//——添加特定格式的字符串
76
sb.Insert();//——插入一个子字符串
77
sb.Remove();//——从当前字符串删除字符
78
sb.Replace();//——替换字符串中指定的字符
79
sb.ToString();//——将sb转化为String 对象
80
81
88
}
89
}
String常用的方法

Code
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Threading;
6
using System.Globalization;
7
8
namespace ToUpper
9

{
10
class Program
11
{
12
static void Main(string[] args)
13
{
14
string title = "this is my converted string";
15
Console.WriteLine("String Class");
16
Console.WriteLine("------------");
17
18
//Convert string to uppercase.
19
Console.WriteLine(title.ToUpper());
20
//Convert string to lowercase.
21
Console.WriteLine(title.ToLower());
22
23
Console.WriteLine();
24
Console.WriteLine("TextInfo Class");
25
Console.WriteLine("--------------");
26
27
//Get the culture property of the thread.
28
//获取或设置当前线程的区域性。
29
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
30
//Create TextInfo object.
31
//获取定义与区域性关联的书写体系的 System.Globalization.TextInfo。
32
TextInfo textInfo = cultureInfo.TextInfo;
33
34
//Convert to uppercase.
35
//将指定的字符串转换为词首字母大写。
36
Console.WriteLine(textInfo.ToUpper(title));
37
//Convert to lowercase.
38
//将指定的字符串转换为小写。
39
Console.WriteLine(textInfo.ToLower(title));
40
//Convert to title case.
41
// 将指定的字符串转换为词首字母大写。
42
Console.WriteLine(textInfo.ToTitleCase(title));
43
44
45
46
47
}
48
}
49
}
50
string 是System.Text中的一个基类,它是基于引用类型而不是基于值类型的.
比如int abc=3; 当你在改变abc的值时,改变的是abc所指向地址的值.但是对于引用类型的string
如果string abc="123"; 当改变为abc.append("34456");时,
它不是直接在原来的内存区域上直接添加后面的字符串,而是在内存中重新开辟一段区域来存储新的字符串,
并将abc重新指向新的地址.这样一来,在进行字符串的连接的时候,string 的效率就显得比较低下.
如果采用stringBuilder类的话,它采用的方法是首先在创建字符串的时候同时创造一个缓冲区域.
比如 StringBuilder abc=new StringBuilder(abcsda,100);表示首先创建的abc的长度(length)为abcsda,而其缓冲区域(capacity)为100.
一般在不显示指定其缓冲区域时,系统根据前面字符串的长度自动生成缓冲区域.这样一来,StringBuilder的执行连接效率就会比string高的多.
但是另一点就是string 类的方法和功能仍然还是比stringBuilder类要强.