string objectives
play

String Objectives Discuss string handling System.String class - PDF document

String Objectives Discuss string handling System.String class System.Text.StringBuilder class 2 String class Framework Class Library provides System.String class represents immutable sequence of characters namespace


  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 { public sealed class String ... String class { ... } } 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' }; string a = new string(t); entire array string b = new string(t, 0, 2); first 2 characters 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 \ string a = "hello\n"; linefeed string b = "\""; double quote string c = "C:\\WINDOWS"; backslash ... 7

  8. Verbatim string literal Can create verbatim string literal • – precede with @ – helps reduce need for escape sequences string path = @"C:\WINDOWS\Config"; verbatim 8

  9. String length • String provides read only Length property string s = "hello"; int l = s.Length; length will be 5 9

  10. String indexer String provides read only indexer • – indices start at zero string s = "hello"; char c = s[4]; retrieve 'o' 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 ... if (a.Equals(b)) equality ... if (a == b) equality ... if (a != b) inequality ... 11

  12. String concatenation String concatenation supported • – operator + – operator += string a = "holly"; string b = "wood"; string c = a + b; operator + string d = "tom"; d += "cat"; operator += 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 { public sealed class StringBuilder StringBuilder class { ... } } 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("<body>hello<html>"); text.Remove(12, 4); modify text.Insert(12, "/bode"); text[16] = 'y'; text <body>hello</body> 16

  17. StringBuilder internally managed capacity • StringBuilder adjusts capacity to accommodate contents – no need for user interaction StringBuilder text = new StringBuilder(); text.Append("<html>"); text.Append("<body>"); text.Append("<p>"); capacity increased text.Append("hello"); as needed ... text.Append("</p>"); text.Append("</body>"); text.Append("</html>"); 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 StringBuilder a = new StringBuilder(100); capacity of 100 a.Capacity = 200; capacity of 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("<html>"); text.Append("<body>"); text.Append("<p>"); text.Append("hello"); ... return text.ToString(); convert } 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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend