C # - สตริง
ใน C # คุณสามารถใช้สตริงเป็นอาร์เรย์ของอักขระได้อย่างไรก็ตามแนวทางปฏิบัติทั่วไปคือการใช้ stringคีย์เวิร์ดเพื่อประกาศตัวแปรสตริง คีย์เวิร์ดสตริงเป็นนามแฝงสำหรับSystem.String ชั้นเรียน
การสร้างวัตถุสตริง
คุณสามารถสร้างวัตถุสตริงโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้ -
โดยการกำหนดสตริงลิเทอรัลให้กับตัวแปร String
โดยใช้ตัวสร้างคลาส String
โดยใช้ตัวดำเนินการต่อสตริง (+)
โดยการดึงคุณสมบัติหรือเรียกเมธอดที่ส่งคืนสตริง
โดยการเรียกวิธีการจัดรูปแบบเพื่อแปลงค่าหรือวัตถุเป็นการแสดงสตริง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้ -
using System;
namespace StringApplication {
class Program {
static void Main(string[] args) {
//from string literal and string concatenation
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
char []letters= { 'H', 'e', 'l', 'l','o' };
string [] sarray={ "Hello", "From", "Tutorials", "Point" };
string fullname = fname + lname;
Console.WriteLine("Full Name: {0}", fullname);
//by using string constructor { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);
Console.WriteLine("Greetings: {0}", greetings);
//methods returning string { "Hello", "From", "Tutorials", "Point" };
string message = String.Join(" ", sarray);
Console.WriteLine("Message: {0}", message);
//formatting method to convert a value
DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
string chat = String.Format("Message sent at {0:t} on {0:D}", waiting);
Console.WriteLine("Message: {0}", chat);
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012
คุณสมบัติของคลาสสตริง
คลาส String มีคุณสมบัติสองอย่างต่อไปนี้ -
ซีเนียร์ | คุณสมบัติและคำอธิบาย |
---|---|
1 | Chars รับวัตถุCharที่ตำแหน่งที่ระบุในอ็อบเจ็กต์Stringปัจจุบัน |
2 | Length รับจำนวนอักขระในอ็อบเจ็กต์ String ปัจจุบัน |
วิธีการของคลาสสตริง
คลาส String มีวิธีการมากมายที่ช่วยคุณในการทำงานกับอ็อบเจ็กต์สตริง ตารางต่อไปนี้แสดงวิธีการที่ใช้บ่อยที่สุด -
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | public static int Compare(string strA, string strB) เปรียบเทียบอ็อบเจ็กต์สตริงที่ระบุสองรายการและส่งกลับจำนวนเต็มที่ระบุตำแหน่งสัมพัทธ์ในลำดับการจัดเรียง |
2 | public static int Compare(string strA, string strB, bool ignoreCase ) เปรียบเทียบอ็อบเจ็กต์สตริงที่ระบุสองรายการและส่งกลับจำนวนเต็มที่ระบุตำแหน่งสัมพัทธ์ในลำดับการจัดเรียง อย่างไรก็ตามจะไม่สนใจกรณีที่พารามิเตอร์บูลีนเป็นจริง |
3 | public static string Concat(string str0, string str1) เชื่อมต่อวัตถุสองสตริง |
4 | public static string Concat(string str0, string str1, string str2) เชื่อมต่อวัตถุสามสาย |
5 | public static string Concat(string str0, string str1, string str2, string str3) เชื่อมต่อวัตถุสี่สาย |
6 | public bool Contains(string value) ส่งคืนค่าที่ระบุว่าวัตถุสตริงที่ระบุเกิดขึ้นภายในสตริงนี้หรือไม่ |
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) กำหนดว่าจุดสิ้นสุดของอ็อบเจ็กต์สตริงตรงกับสตริงที่ระบุหรือไม่ |
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 ที่ระบุในสตริงปัจจุบัน |
14 | public int IndexOf(string value) ส่งคืนดัชนีที่อิงเป็นศูนย์ของการเกิดครั้งแรกของสตริงที่ระบุในอินสแตนซ์นี้ |
15 | public int IndexOf(char value, int startIndex) ส่งคืนดัชนีที่อิงเป็นศูนย์ของการเกิดครั้งแรกของอักขระ Unicode ที่ระบุในสตริงนี้โดยเริ่มการค้นหาที่ตำแหน่งอักขระที่ระบุ |
16 | public int IndexOf(string value, int startIndex) ส่งคืนดัชนีที่อิงเป็นศูนย์ของการเกิดครั้งแรกของสตริงที่ระบุในอินสแตนซ์นี้โดยเริ่มการค้นหาที่ตำแหน่งอักขระที่ระบุ |
17 | public int IndexOfAny(char[] anyOf) ส่งคืนดัชนีที่อิงเป็นศูนย์ของเหตุการณ์แรกในอินสแตนซ์ของอักขระใด ๆ ในอาร์เรย์ของอักขระ Unicode ที่ระบุ |
18 | public int IndexOfAny(char[] anyOf, int startIndex) ส่งคืนดัชนีที่อิงเป็นศูนย์ของการเกิดครั้งแรกในอินสแตนซ์ของอักขระใด ๆ ในอาร์เรย์ของอักขระ Unicode ที่ระบุโดยเริ่มการค้นหาที่ตำแหน่งอักขระที่ระบุ |
19 | public string Insert(int startIndex, string value) ส่งคืนสตริงใหม่ที่สตริงที่ระบุถูกแทรกที่ตำแหน่งดัชนีที่ระบุในอ็อบเจ็กต์สตริงปัจจุบัน |
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 ที่ระบุภายในออบเจ็กต์สตริงปัจจุบัน |
24 | public int LastIndexOf(string value) ส่งคืนตำแหน่งดัชนีที่อิงเป็นศูนย์ของการเกิดครั้งสุดท้ายของสตริงที่ระบุภายในออบเจ็กต์สตริงปัจจุบัน |
25 | public string Remove(int startIndex) ลบอักขระทั้งหมดในอินสแตนซ์ปัจจุบันเริ่มต้นที่ตำแหน่งที่ระบุและดำเนินการต่อไปจนถึงตำแหน่งสุดท้ายและส่งคืนสตริง |
26 | public string Remove(int startIndex, int count) ลบจำนวนอักขระที่ระบุในสตริงปัจจุบันที่เริ่มต้นที่ตำแหน่งที่ระบุและส่งคืนสตริง |
27 | public string Replace(char oldChar, char newChar) แทนที่การเกิดขึ้นทั้งหมดของอักขระ Unicode ที่ระบุในอ็อบเจ็กต์สตริงปัจจุบันด้วยอักขระ Unicode ที่ระบุและส่งคืนสตริงใหม่ |
28 | public string Replace(string oldValue, string newValue) แทนที่การเกิดขึ้นทั้งหมดของสตริงที่ระบุในอ็อบเจ็กต์สตริงปัจจุบันด้วยสตริงที่ระบุและส่งคืนสตริงใหม่ |
29 | public string[] Split(params char[] separator) ส่งคืนสตริงอาร์เรย์ที่มีสตริงย่อยในอ็อบเจ็กต์สตริงปัจจุบันคั่นด้วยองค์ประกอบของอาร์เรย์อักขระ Unicode ที่ระบุ |
30 | public string[] Split(char[] separator, int count) ส่งคืนสตริงอาร์เรย์ที่มีสตริงย่อยในอ็อบเจ็กต์สตริงปัจจุบันคั่นด้วยองค์ประกอบของอาร์เรย์อักขระ Unicode ที่ระบุ พารามิเตอร์ int ระบุจำนวนสตริงย่อยสูงสุดที่จะส่งคืน |
31 | public bool StartsWith(string value) กำหนดว่าจุดเริ่มต้นของอินสแตนซ์สตริงนี้ตรงกับสตริงที่ระบุหรือไม่ |
32 | public char[] ToCharArray() ส่งคืนอาร์เรย์อักขระ Unicode ที่มีอักขระทั้งหมดในวัตถุสตริงปัจจุบัน |
33 | public char[] ToCharArray(int startIndex, int length) ส่งคืนอาร์เรย์อักขระ Unicode ที่มีอักขระทั้งหมดในอ็อบเจ็กต์สตริงปัจจุบันโดยเริ่มจากดัชนีที่ระบุและจนถึงความยาวที่ระบุ |
34 | public string ToLower() ส่งคืนสำเนาของสตริงนี้ที่แปลงเป็นตัวพิมพ์เล็ก |
35 | public string ToUpper() ส่งคืนสำเนาของสตริงนี้ที่แปลงเป็นตัวพิมพ์ใหญ่ |
36 | public string Trim() ลบอักขระช่องว่างนำหน้าและต่อท้ายทั้งหมดจากอ็อบเจ็กต์ String ปัจจุบัน |
คุณสามารถเยี่ยมชมไลบรารี MSDN เพื่อดูรายการเมธอดและตัวสร้างคลาส String ทั้งหมด
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการบางอย่างที่กล่าวถึงข้างต้น -
การเปรียบเทียบสตริง
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str1 = "This is test";
string str2 = "This is text";
if (String.Compare(str1, str2) == 0) {
Console.WriteLine(str1 + " and " + str2 + " are equal.");
} else {
Console.WriteLine(str1 + " and " + str2 + " are not equal.");
}
Console.ReadKey() ;
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
This is test and This is text are not equal.
สตริงประกอบด้วยสตริง
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str = "This is test";
if (str.Contains("test")) {
Console.WriteLine("The sequence 'test' was found.");
}
Console.ReadKey() ;
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
The sequence 'test' was found.
รับ Substring
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);
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
San Pedro
การเข้าร่วมสตริง
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string[] starray = new string[]{"Down the way nights are dark",
"And the sun shines daily on the mountain top",
"I took a trip on a sailing ship",
"And when I reached Jamaica",
"I made a stop"};
string str = String.Join("\n", starray);
Console.WriteLine(str);
}
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop