Lecture 10 Strings CSE 1322 4/26/2018
String class A string is a sequence of characters stored in a certain address in memory. Once created, it cannot be changed. It is an immutable object because the string class has no mutators methods. Unlike other objects, it does not need to be explicitly instantiated After being assigned once, the content of the variable does not change directly – if we try to change the value, it will be saved to a new location in the dynamic memory and the variable will point to it. 4/26/2018
Strings java Strings are objects of the String class String constants or literals: String variables: String length: Empty string: "Hello, World!" String message = "Hello, World!"; int n = message.length(); "" 4/26/2018
Strings C# Strings are objects of the string class String constants or literals: String variables: String length: Empty string: "Hello, World!" string message = "Hello, World!"; int n = message.Length; "" 4/26/2018
String Object vs String Reference String Constant Pool 4/26/2018
String Object vs String Reference String Constant Pool 4/26/2018
Concatenation Use the + operator: If one of the arguments of the + operator is a string, the other is converted to a string String name = "Dave"; String message = "Hello, " + name; // message is "Hello, Dave" String a = "Agent"; int n = 7; String bond = a + n; // bond is Agent7 4/26/2018
Concatenation Use the + operator: If one of the arguments of the + operator is a string, the other is converted to a string string name = "Dave"; string message = "Hello, " + name; // message is "Hello, Dave" string a = "Agent"; int n = 7; String bond = a + n; // bond is Agent7 4/26/2018
Concatenation in Print Statements Useful to reduce the number of System.out.print instructions versus System.out.print("The total is "); System.out.println(total); System.out.println("The total is " + total); 4/26/2018
Concatenation in Print Statements Useful to reduce the number of Console.Write instructions versus Console.Write("The total is "); Console.WriteLIne(total); Console.WriteLine("The total is " + total); 4/26/2018
Converting between Strings and Numbers Convert to number: Convert to string: int n = Integer.parseInt(str); double x = Double.parseDouble(x); String str = "" + n; str = Integer.toString(n); 4/26/2018
Converting between Strings and Numbers Convert to number: Convert to string: int n = int.ParseInt(str); double x = double.Parse(x); String str = "" + n; int many = 5; string xyz = many.ToString(); 4/26/2018
Substrings Java Supply start and “past the end” position String greeting = "Hello, World!"; String sub = greeting.substring(0, 5); // sub is "Hello" Supply start and “past the end” position First position is at 0 4/26/2018
Substrings Java Substring length is “past the end” - start String greeting = "Hello, World!"; String sub = greeting.substring(7, 12); // sub is “World" Substring length is “past the end” - start 4/26/2018
Substrings C# Supply start and the number of characters desired string greeting = "Hello, World!"; string sub = greeting.substring(0, 5); // sub is "Hello" Supply start and the number of characters desired First position is at 0 4/26/2018
Substrings Java String greeting = "Hello, World!"; String sub = greeting.substring(7, 12); // sub is “World" 4/26/2018
Challenge String s ="Agent“; What is the effect of the assignment s = s + s.length()? String river ="Mississippi“: what is the value of river.substring(1, 2)? what is the value of river.substring(2, river.length() - 3)? What is the value of river.substring(1)? string s ="Agent“; What is the effect of the assignment s = s + s.Length; string river ="Mississippi“: what is the value of river.Substring(1, 2)? what is the value of river.Substring(2, river.Length- 3)? What is the value of river.Substring(1)? 4/26/2018
Answers Agent5 i ssiss ississippi Agent5 i ssissip ississippi 4/26/2018
4/26/2018
Length Property public int Length { get; } The number of characters in the current string. Remarks The Length property returns the number of Char objects in this instance, not the number of Unicode characters. Example: string h= “hello”; int len = h.Length; len has a value of 5 4/26/2018
To upper and lower case public string ToLower() Return Value: A string in lowercase. public string ToUpper() Return Value: A string in uppercase. Example: string myString = “good luck”; myString = myString.ToUpper(); myString now has the value “GOOD LUCK” 4/26/2018
To upper and lower case public string ToLower() Return Value: A string in lowercase. public string ToUpper() Return Value: A string in uppercase. Example: string myString = “good luck”; myString = myString.ToUpper(); myString now has the value “GOOD LUCK” 4/26/2018
To upper and lower case public string toLowerCase() Return Value: A string in lowercase. public string toUpperCase() Return Value: A string in uppercase. Example: String myString = “good luck”; myString = myString.toUpperCase(); myString now has the value “GOOD LUCK” 4/26/2018
IndexOf methods public int IndexOf( char value ) The zero-based index position of value if that character is found, or -1 if it is not. public int IndexOf( string value) The zero-based index position of value if that string is found, or -1 if it is not. string myString= “hello world”; int e_index=myString.IndexOf(‘e’); // e_index= 1 int or_index= myString.IndexOf(“or”); //or_index=7 4/26/2018
indexOf methods public int indexOf( char value ) The zero-based index position of value if that character is found, or -1 if it is not. public int indexOf( string value) The zero-based index position of value if that string is found, or -1 if it is not. String myString= “hello world”; int e_index=myString.indexOf(‘e’); // e_index= 1 int or_index= myString.indexOf(“or”); //or_index=7 4/26/2018
Problem-1: Reverse a String (Using a Char Array) 4/26/2018
Problem-1: Reverse a String (in place) 4/26/2018
Problem-1: Reverse a String (in place) public class StringReverseInPlaceEx1 { public static void main(String[] args) { String a = “INFORMATION"; System.out.println(reverse(a)); //NOITAMROFNI } private static String reverse(String a) { char[] ca = a.toCharArray(); int start = 0 ; int end = a.length()-1; while(end > start) { swap(ca,start,end); start++; end--; }//while return new String(ca); private static void swap(char[] ca, int start, int end) { char t = ca[start]; ca[start] = ca[end]; ca[end] = t ; 4/26/2018
Problem-1: Reverse a String (in place) public class StringReverseInPlaceEx2 { public static void main(String[] args) { String a = "INFORMATION"; System.out.println(StringReverseInPlace(a)); //NOITAMROFNI } public static String StringReverseInPlace(String toReverse) { char[] chars = toReverse.toCharArray(); int inputStringLength = toReverse.length(); for (int i = 0; i < inputStringLength / 2; i++) { int toMoveBack = toReverse.charAt(i); int toMoveForward = toReverse.charAt(inputStringLength - i - 1); //swap toMoveForward = toMoveBack - toMoveForward; toMoveBack -= toMoveForward; toMoveForward += toMoveBack; chars[i] = (char) toMoveBack; chars[inputStringLength - i - 1] = (char) toMoveForward; return String.valueOf(chars); 4/26/2018
Null Initialization vs Empty String 4/26/2018
Frequently Used String Methods https://www.tutorialspoint.com/java/java_strings.htm 4/26/2018