C # สตริง (String)
ใน C # คุณสามารถใช้อาร์เรย์ของตัวอักษรเพื่อเป็นตัวแทนของสายแต่การปฏิบัติร่วมกันมากขึ้นคือการใช้คำหลักสตริงที่จะประกาศตัวแปรสตริงคำหลักสตริงเป็นนามแฝงสำหรับการเรียนSystem.String
การสร้างวัตถุสตริง
คุณสามารถใช้วิธีใดวิธีหนึ่งดังต่อไปนี้ในการสร้างวัตถุสตริง:
- โดยตัวแปร String เพื่อระบุสตริง
- โดยใช้การสร้างคลาส String
- โดยใช้ผู้ประกอบการสตริง (+)
- โดยเรียกทรัพย์สินหรือเรียกวิธีการที่ส่งกลับสตริง
- โดยวิธีการจัดรูปแบบการแปลงค่าหรือวัตถุที่จะเป็นตัวแทนสตริง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงจุดนี้:
การใช้ระบบ StringApplication namespace { Program รุ่น { เป็นโมฆะคง main (String args []) { // สตริงสตริงสตริง fname, lname; fname = "เอิน"; lname = "แอตกินสัน"; สตริงชื่อเต็ม = fname + lname; Console.WriteLine ( "ชื่อเต็ม: {0}" ชื่อเต็ม); // โดยใช้ถ่านสตริงคอนสตรัค [] = {ตัวอักษร 'H', 'E', 'L', 'L', 'O'}; ทักทายสตริงสตริง = ใหม่ (ตัวอักษร); Console.WriteLine ( "ทักทาย: {0}" ทักทาย); // วิธีการส่งกลับสตริง [] = {sarray "ฮัลโหล" "จาก", "สอน", "จุด"}; ข้อความสตริง = String.Join ( "", sarray); Console.WriteLine ( "ข้อความ: {0}", ข้อความ); // วิธีการจัดรูปแบบสำหรับการเปลี่ยนแปลงค่า DateTime รอ = DateTime ใหม่ (2012, 10, 10, 17, 58, 1); แชทสตริง = String.Format ( "ส่งข้อความที่ {0: T} ใน {0: D}" รอ); Console.WriteLine ( "ข้อความ: {0}", แชท); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
ชื่อเต็ม: โรวันแอตคินสัน ทักทาย: สวัสดี ข้อความ: สวัสดีจาก Tutorials จุด ข้อความ: ข้อความถูกส่งที่ 17:58 ในพุธ 10 ตุลาคม, 2012
ระดับทรัพย์สินสตริง
คลาสสตริงมีคุณสมบัติสองต่อไป:
序号 | 属性名称 & 描述 |
---|---|
1 | Chars 在当前String对象中获取Char对象的指定位置。 |
2 | Length 在当前的String对象中获取字符数。 |
วิธีการเรียนสตริง
คลาสสตริงมีหลายวิธีสำหรับวัตถุสตริงปฏิบัติการ ตารางต่อไปนี้มีบางส่วนของวิธีการที่พบมากที่สุด:
序号 | 方法名称 & 描述 |
---|---|
1 | public static int Compare(
string strA,
string strB
)
比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。 |
2 | public static int Compare(
string strA,
string strB,
bool ignoreCase
)
比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。但是,如果布尔参数为真时,该方法不区分大小写。 |
3 | public static string Concat(
string str0,
string str1
)
连接两个 string 对象。 |
4 | public static string Concat(
string str0,
string str1,
string str2
)
连接三个 string 对象。 |
5 | public static string Concat(
string str0,
string str1,
string str2,
string str3
)
连接四个 string 对象。 |
6 | public bool Contains(
string value
)
返回一个表示指定 string 对象是否出现在字符串中的值。 |
7 | public static string Copy(
string str
)
创建一个与指定字符串具有相同值的新的 String 对象。 |
8 | public void CopyTo(
int sourceIndex,
char[] destination,
int destinationIndex,
int count
)
从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。 |
9 | public bool EndsWith(
string value
)
判断 string 对象的结尾是否匹配指定的字符串。 |
10 | public bool Equals(
string value
)
判断当前的 string 对象是否与指定的 string 对象具有相同的值。 |
11 | public static bool Equals(
string a,
string b
)
判断两个指定的 string 对象是否具有相同的值。 |
12 | public static string Format(
string format,
Object arg0
)
把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。 |
13 | public int IndexOf(
char value
)
返回指定 Unicode 字符在当前字符串中第一次出现的索引,索引从 0 开始。 |
14 | public int IndexOf(
string value
)
返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。 |
15 | public int IndexOf(
char value,
int startIndex
)
返回指定 Unicode 字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 |
16 | public int IndexOf(
string value,
int startIndex
)
返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 |
17 | public int IndexOfAny(
char[] anyOf
)
返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。 |
18 | public int IndexOfAny(
char[] anyOf,
int startIndex
)
返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。 |
19 | public string Insert(
int startIndex,
string value
)
返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。 |
20 | public static bool IsNullOrEmpty(
string value
)
指示指定的字符串是否为 null 或者是否为一个空的字符串。 |
21 | public static string Join(
string separator,
params string[] value
)
连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。 |
22 | public static string Join(
string separator,
string[] value,
int startIndex,
int count
)
连接接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。 |
23 | public int LastIndexOf(
char value
)
返回指定 Unicode 字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。 |
24 | public int LastIndexOf(
string value
)
返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。 |
25 | public string Remove(
int startIndex
)
移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。 |
26 | public string Remove(
int startIndex,
int count
)
从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。 |
27 | public string Replace(
char oldChar,
char newChar
)
把当前 string 对象中,所有指定的 Unicode 字符替换为另一个指定的 Unicode 字符,并返回新的字符串。 |
28 | public string Replace(
string oldValue,
string newValue
)
把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。 |
29 | public string[] Split(
params char[] separator
)
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。 |
30 | public string[] Split(
char[] separator,
int count
)
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。 |
31 | public bool StartsWith(
string value
)
判断字符串实例的开头是否匹配指定的字符串。 |
32 | public char[] ToCharArray() 返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。 |
33 | public char[] ToCharArray(
int startIndex,
int length
)
返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。 |
34 | public string ToLower() 把字符串转换为小写并返回。 |
35 | public string ToUpper() 把字符串转换为大写并返回。 |
36 | public string Trim() 移除当前 String 对象中的所有前导空白字符和后置空白字符。 |
วิธีการของรายการดังกล่าวเป็นความไม่ครบถ้วนสมบูรณ์กรุณาเยี่ยมชมห้องสมุด MSDN สำหรับรายการที่สมบูรณ์ของวิธีการและสร้างคลาส String
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงบางส่วนของวิธีการดังกล่าวข้างต้น
เปรียบเทียบสตริง
การใช้ระบบ StringApplication namespace { ระดับ StringProg { เป็นโมฆะคง main (String args []) { สตริง str1 = "นี่คือการทดสอบ"; สตริง str2 = "นี่คือข้อความ"; ถ้า (String.Compare (str1, str2) == 0) { Console.WriteLine (str1 + "และ" + str2 + "มีค่าเท่ากัน."); } อื่น { Console.WriteLine (str1 + "และ" + str2 + "จะไม่เท่ากัน."); } Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
นี่คือการทดสอบและนี่คือข้อความที่ไม่เท่ากัน
สตริงมีสตริง:
การใช้ระบบ StringApplication namespace { ระดับ StringProg { เป็นโมฆะคง main (String args []) { สตริง STR = "นี่คือการทดสอบ"; ถ้า (str.Contains ( "ทดสอบ")) { Console.WriteLine ( "ลำดับ 'ทดสอบ' ถูกพบ."); } Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
ลำดับ 'ทดสอบ' ถูกพบ
ได้รับการย่อย:
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string str = "Last night I dreamt of San Pedro"; Console.WriteLine(str); string substr = str.Substring(23); Console.WriteLine(substr); Console.ReadKey() ; } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
เมื่อคืนผมฝันถึงซานเปโดร ซานเปโดร
สตริงการเชื่อมต่อ:
การใช้ระบบ StringApplication namespace { ระดับ StringProg { เป็นโมฆะคง main (String args []) { สตริง [] = starray สตริงใหม่ [] { "ลงวิธีการคืนมืด" "และดวงอาทิตย์ส่องสว่างในชีวิตประจำวันบนภูเขา" "ผมเอาการเดินทางบนเรือแล่นเรือใบ" "และเมื่อฉันถึงจาไมก้า" "ฉันทำป้าย"}; สตริง STR = String.Join ( "\ n", starray); Console.WriteLine (STR); Console.ReadKey (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
ลงวิธีการคืนมืด และดวงอาทิตย์ส่องสว่างในชีวิตประจำวันบนภูเขา ผมเอาการเดินทางบนเรือแล่นเรือใบ และเมื่อผมมาถึงจาไมก้า ผมหยุดทำ