Presentation is loading. Please wait.

Presentation is loading. Please wait.

String. 2 Objectives Discuss string handling –System.String class –System.Text.StringBuilder class.

Similar presentations


Presentation on theme: "String. 2 Objectives Discuss string handling –System.String class –System.Text.StringBuilder class."— Presentation transcript:

1 String

2 2 Objectives Discuss string handling –System.String class –System.Text.StringBuilder class

3 3 String class Framework Class Library provides System.String class –represents immutable sequence of characters namespace System { public sealed class String... {... } String class

4 4 equivalent String alias C# provides string as convenient alias for System.String string s; System.String t;

5 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); string b = new string(t, 0, 2); string c = new string('z', 3); entire array first 2 characters given character repeated 3 times helloa heb zzzc

6 6 String literals String literals automatically converted into string objects –convenient shorthand for common case string s = "hello"; string object created hellos

7 7 Escape sequence Can include escape sequence in string –precede special characters with \ string a = "hello\n"; string b = "\""; string c = "C:\\WINDOWS";... linefeed double quote backslash

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

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

10 10 String indexer String provides read only indexer –indices start at zero string s = "hello"; char c = s[4]; retrieve 'o'

11 11 String comparison String provides several ways to perform comparison –all have value semantics string a = "bike"; string b = "bit"; if (a.CompareTo(b) < 0)... if (a.Equals(b))... if (a == b)... if (a != b)... three way comparison, used for ordering equality inequality

12 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 +=

13 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"; d += "cat"; create new object, assign to reference tomd tomcat

14 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++) { text += Console.ReadLine(); } may create new object each iteration

15 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

16 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); text.Insert(12, "/bode"); text[16] = 'y'; modify hello text

17 17 StringBuilder internally managed capacity StringBuilder adjusts capacity to accommodate contents –no need for user interaction capacity increased as needed StringBuilder text = new StringBuilder(); text.Append(" "); text.Append("hello");... text.Append(" ");

18 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); a.Capacity = 200; capacity of 100 capacity of 200

19 19 StringBuilder typical usage StringBuilder typically used to create desired sequence –result is then converted to string using ToString string Create() { StringBuilder text = new StringBuilder(); text.Append(" "); text.Append("hello");... return text.ToString(); } create convert

20 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


Download ppt "String. 2 Objectives Discuss string handling –System.String class –System.Text.StringBuilder class."

Similar presentations


Ads by Google