Download presentation
Presentation is loading. Please wait.
Published byEarl Hodge Modified over 8 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.