intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

String

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PDF | Số trang:0

37
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

String presents about string class; string alias; string creation; string literals; escape sequence; verbatim string literal; string length; string indexer; string comparison; string concatenation and something else.

Chủ đề:
Lưu

Nội dung Text: String

  1. String
  2. Objectives • Discuss string handling – System.String class – System.Text.StringBuilder class 2
  3. String class • Framework Class Library provides System.String class – represents immutable sequence of characters namespace System { String class public sealed class String ... { ... } } 3
  4. String alias • C# provides string as convenient alias for System.String string s; equivalent System.String t; 4
  5. String creation • String is a reference type – created with new – constructors available for char and char[] char[] t = new char[5] { 'h', 'e', 'l', 'l', 'o' }; entire array string a = new string(t); first 2 characters string b = new string(t, 0, 2); given character string c = new string('z', 3); repeated 3 times a hello b he c zzz 5
  6. String literals • String literals automatically converted into string objects – convenient shorthand for common case string object created string s = "hello"; s hello 6
  7. Escape sequence • Can include escape sequence in string – precede special characters with \ linefeed string a = "hello\n"; double quote string b = "\""; backslash string c = "C:\\WINDOWS"; ... 7
  8. Verbatim string literal • Can create verbatim string literal – precede with @ – helps reduce need for escape sequences verbatim string path = @"C:\WINDOWS\Config"; 8
  9. String length • String provides read only Length property string s = "hello"; length will be 5 int l = s.Length; 9
  10. String indexer • String provides read only indexer – indices start at zero string s = "hello"; retrieve 'o' char c = s[4]; 10
  11. String comparison • String provides several ways to perform comparison – all have value semantics string a = "bike"; string b = "bit"; three way comparison, if (a.CompareTo(b) < 0) used for ordering ... equality if (a.Equals(b)) ... equality if (a == b) ... inequality if (a != b) ... 11
  12. String concatenation • String concatenation supported – operator + – operator += string a = "holly"; string b = "wood"; operator + string c = a + b; string d = "tom"; operator += d += "cat"; 12
  13. String immutability • Strings are immutable – no way to modify contents • Operations which seem to modify string do not – actually create new object to represent new value string d = "tom"; create new object, d += "cat"; assign to reference d tom tomcat 13
  14. String inefficiency • Strings can be inefficient when used for concatenation – may create and destroy many intermediate objects string text = ""; for (int i = 0; i < 10; i++) { may create new text += Console.ReadLine(); object each iteration } 14
  15. StringBuilder class • Framework Class Library provides StringBuilder class – in System.Text namespace – represents mutable sequence of characters namespace System.Text { StringBuilder class public sealed class StringBuilder { ... } } 15
  16. StringBuilder mutability • StringBuilder provides mutator methods – change contents of existing object – can be more efficient than string for concatenation StringBuilder text = new StringBuilder(); text.Append("hello"); text.Remove(12, 4); modify text.Insert(12, "/bode"); text[16] = 'y'; text hello 16
  17. StringBuilder internally managed capacity • StringBuilder adjusts capacity to accommodate contents – no need for user interaction StringBuilder text = new StringBuilder(); text.Append(""); text.Append(""); text.Append(""); capacity increased text.Append("hello"); as needed ... text.Append(""); text.Append(""); text.Append(""); 17
  18. StringBuilder user managed capacity • StringBuilder allows user some control over capacity – initial capacity during construction – read/write Capacity property • Explicit management of capacity can be efficient – if final length of string is known ahead of time capacity of 100 StringBuilder a = new StringBuilder(100); capacity of 200 a.Capacity = 200; 18
  19. StringBuilder typical usage • StringBuilder typically used to create desired sequence – result is then converted to string using ToString string Create() { create StringBuilder text = new StringBuilder(); text.Append(""); text.Append(""); text.Append(""); text.Append("hello"); ... convert return text.ToString(); } 19
  20. Summary • .NET Framework Class Library has two string classes – String – StringBuilder • String is primary class – offers most services – is most convenient to use • StringBuilder is more specialized – targeted toward creating string from pieces 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2