Characters The data type char represents a single

  • Slides: 39
Download presentation
Characters • The data type char represents a single character in Java. – Character

Characters • The data type char represents a single character in Java. – Character values are written as a symbol: ‘a’, ‘)’, ‘%’, ‘A’, etc. – A char value in Java is really represented as an integer. • Each character has an associated integer value.

Characters – The integer value associated with the character is based upon a code.

Characters – The integer value associated with the character is based upon a code. • The ASCII code represents 256 characters including all upper and lower case English letters, the numbers between 0 and 9, punctuation, and some unprintable characters. • ASCII is a subset of the UNICODE character set. • The UNICODE character set contains 34, 168 distinct characters. – The major languages from the Americas, Europe, Middle East, Africa, India, Asia, and Pacifica are represented.

Characters • The value for a particular ASCII character is the sum of the

Characters • The value for a particular ASCII character is the sum of the row number and the column number. – What is the integer value of the character: • ‘C’? • ‘<‘? • ‘c’? – Remember that ‘C’ != ‘c’.

Characters • The printable ASCII characters include tabs, new lines, carriage return, single and

Characters • The printable ASCII characters include tabs, new lines, carriage return, single and double quote. – New line = ‘n’ – Tab = ‘t’ – Carriage return = ‘r’ – Single quote = ‘’’ – Double quote = ‘”’

Non-printable Characters • There also characters contained in ASCII that are not printable. –

Non-printable Characters • There also characters contained in ASCII that are not printable. – Bell tone = bel – Characters 0 to 32 are non-printable characters.

Characters • To define a character use the char data type. – char first.

Characters • To define a character use the char data type. – char first. Char = ‘a’, second. Char = ‘A’; • To convert an integer into a character you can type cast the integer. – char third. Character = (char) 120;

Characters • You can print a char as an integer using type casting. –

Characters • You can print a char as an integer using type casting. – output. print. Line( (int) ‘C’); • Comparing characters is done based upon their integer representation. – True or false? ‘c’ < ‘C’ – True or false? ‘ 1’ < ‘ 4’

Strings • A string is composed of individual characters that are treated as a

Strings • A string is composed of individual characters that are treated as a single unit. – The individual characters ‘h’, ‘e’, ‘l’, and ‘o’ are combined into the string “hello”. • A string may contain letters, digits, and special characters such as +, -, etc. • String Examples: – “My name is Matilda. ” – “ 1 + 2 = 3”

Strings • The data type of a string is String. – The capital ‘S’

Strings • The data type of a string is String. – The capital ‘S’ of String indicates that this data type is not a primitive data type. – In fact, String is a complex data type. • When an individual string is created, it is an object of type string.

Inputting Strings • Wu provides the method get. String with the Input. Box class

Inputting Strings • Wu provides the method get. String with the Input. Box class to read strings as input. Input. Box input. Box = new Input. Box(); String name = input. Box. get. String(“Please enter you last name: “); • A string object may be created simply by assigning an actual string to a String object.

String Constructors • Java provides various string constructors. • Assume String s 1; –

String Constructors • Java provides various string constructors. • Assume String s 1; – s 1 = new String(); • This creates a string of length zero with no characters. – s 1 = new String(s); • This creates a string that is a copy of the characters stored in String s that is passed to the constructor.

Strings • Each character of a String has an associated index. – The first

Strings • Each character of a String has an associated index. – The first letter of a string has an index of zero (0), the second letter has an index of one (1), … the last letter has an index of (string length – 1). – What is the string length of “hello”? – What is the index of the second ‘l’ in the word “hello”?

String Methods • The length of a string can be found by: – string.

String Methods • The length of a string can be found by: – string. Name. length(); • The first element of a string is always zero. • A character at a specific position can be found by: – string. Name. char. At(3); • Where 3 is an index into the string.

Strings • Once you create a string and initialize it you can not change

Strings • Once you create a string and initialize it you can not change the size of the string. – You can replace individual characters. – You can assign a new string to the string variable. • The original string is lost. – You can not add new characters or remove existing characters.

Changing Case • To change the case of characters in a string: – string.

Changing Case • To change the case of characters in a string: – string. Name. replace(‘l’, ‘L’); • This will replace all characters ‘l’ in the string with ‘L’. If there are no ‘l’s in the string, the original string is returned. – string. Name. to. Upper. Case(); • This will change all lower case letters to capital letters. – string. Name. to. Lower. Case(); • This will change all capital letters to lower case letters.

String Comparison • Are to strings equal to one another? – string. Name. equals(string.

String Comparison • Are to strings equal to one another? – string. Name. equals(string. Name 2); • The result is true if the two strings are the same and false if the two strings are different. • Capital and Lower case letters are considered to be different. – string. Name == string. Name 2; • The result is only true if string. Name and string. Name 2 both refer to the same object in memory.

String Comparison • You can ignore the case of letters during comparison using: –

String Comparison • You can ignore the case of letters during comparison using: – string. Name. equals. Ignore. Case(String. Name 2); • That means that “hello” is equal to “HELLO” • You can also compare strings using – string. Name. compare. To(String. Name 2); • This comparison returns 0 if the strings are equal, a negative number if string. Name < string. Name 2, and a positive number if string. Name > string. Name 2.

String Comparison • To compare portions of two strings: – string. Name. region. Matches(0,

String Comparison • To compare portions of two strings: – string. Name. region. Matches(0, String. Name 2, 0, 5); • The first parameter 0 is the starting index in string. Name, the third parameter is the starting index in string. Name 2, and the last argument is the number of characters to compare. • This method returns true only if the members compared are equal. – “ello” == “ello” but “ello” != “Ello”

Locating Characters and Substrings • index. Of can be used to find characters in

Locating Characters and Substrings • index. Of can be used to find characters in strings. – string. Name. index. Of((int) ‘a’); • This returns the index of the first ‘a’ in the string if it is found. If it is not found the result is -1. – string. Name. index. Of((int) ‘a’, 2); • This is similar to the first except the second parameter specifies which index of the string the search should begin.

Locating Characters and Substrings • last. Index. Of can be used to find characters

Locating Characters and Substrings • last. Index. Of can be used to find characters in strings. – string. Name. last. Index. Of((int) ‘a’); • This returns the index of the last ‘a’ in the string if it is found. If it is not found the result is -1. – string. Name. last. Index. Of((int) ‘a’, 2); • This is similar to the first except the second parameter specifies the highest index of the string where search should begin.

Extracting Substrings • Methods to get substrings out of strings are: – string. Name.

Extracting Substrings • Methods to get substrings out of strings are: – string. Name. substring(10); • This returns the string that begins at index 10. – string. Name. substring(10, 15); • This returns the string that begins at index 10 and ends at one index before 15.

Concatenating Strings • We have already used string concatenation with: – “this is a

Concatenating Strings • We have already used string concatenation with: – “this is a string” + string. Name • To concatenate two string variables: – string. Name 3 = string. Name. concat(string. Name 2); • This returns the second string added to the end of the first string.

Example Program • String program.

Example Program • String program.

Other String Methods • Using the Javadoc documentation you can learn about the many

Other String Methods • Using the Javadoc documentation you can learn about the many other String methods. – Methods for comparing regions of strings. – Converting variables of other data types to strings.

Primitive vs. Complex Data Types • When you define a primitive data type (int,

Primitive vs. Complex Data Types • When you define a primitive data type (int, char, double, bool) the memory location is allocated. – The number of bytes is always the same to store a value. – char let = ‘A’; let A

Primitive vs. Complex Data Types • A complex data type is a data type

Primitive vs. Complex Data Types • A complex data type is a data type defined by a class. – String is an example of a complex data type. – Complex data types usually begin with a capital letter. – The amount of storage required for a Complex data type varies depending upon how large the actual values are. – Complex data types are also called reference data types.

Primitive vs. Complex Data Types • When we define a String a memory location

Primitive vs. Complex Data Types • When we define a String a memory location is allocated to hold a reference to the actual location of the information. – The reference is the location of the first item in memory. – The information is stored sequentially beginning at the reference location.

Primitive vs. Complex Data Types String name; Name = “Rochester”; name 2044 … R

Primitive vs. Complex Data Types String name; Name = “Rochester”; name 2044 … R o c h e s t e r 1012 2044 2048 2052 2056 2060

Primitive vs. Complex Data Types • If we define another string and assign it

Primitive vs. Complex Data Types • If we define another string and assign it equal to name then they will both point to the same location in memory. string name 2 = name; – Now name and name 2 both point to memory location 1012.

Passing Objects to methods • Some of the String methods we have talked about

Passing Objects to methods • Some of the String methods we have talked about require a String as a parameter to the method. – For example, *. equals. To(String); – The method definition requires a String object to be passed to the method equals. To.

Passing Objects to methods – When we pass a String to a method we

Passing Objects to methods – When we pass a String to a method we are passing it using call-by-reference. • This means that we do not pass the actual string, we are passing the memory location that holds the reference (address) to the actual string.

Passing Objects to Methods – A problem associated with call-byreference is that the original

Passing Objects to Methods – A problem associated with call-byreference is that the original object may be modified. – All objects (both Java defined and user defined) are passed using call-byreference.

Passing Primitive Data to Methods • If a program passes a variable that has

Passing Primitive Data to Methods • If a program passes a variable that has a primitive data type to a method, the actual value is passed using call-byvalue. – The advantage is that the original value can not be modified by the method. – The disadvantage is that a copy of the original value is made, this requires more memory.

Example - Objects String name = “ted”; tester. my. Method(name); public void my. Method(String

Example - Objects String name = “ted”; tester. my. Method(name); public void my. Method(String name 1) { name 1. to. Upper(); }

Example – Primitive Data int num = 2; Tester. my. Method 2(num); public void

Example – Primitive Data int num = 2; Tester. my. Method 2(num); public void my. Method 2(int num) { num += 5; }

Returning Objects from Methods • When a method returns an object, a memory reference

Returning Objects from Methods • When a method returns an object, a memory reference is really returned. – Not the actual data.

Returning Primitive Data from Methods • When a method returns a primitive data type,

Returning Primitive Data from Methods • When a method returns a primitive data type, then the actual value is returned.

Example - Objects String output; output = test. my. Method 3(); public String my.

Example - Objects String output; output = test. my. Method 3(); public String my. Method() { String month = “April”; return month; }

Example – Primitive Data int output; output = test. my. Method 3(); public int

Example – Primitive Data int output; output = test. my. Method 3(); public int my. Method() { int year = 2000; return year; }