SlideShare ist ein Scribd-Unternehmen logo
1 von 51
© 2012 Pearson Education, Inc. All rights reserved.


                                                  Chapter 10:
     Text Processing and More about Wrapper Classes

                         Starting Out with Java:
              From Control Structures through Data Structures

                                                  Second Edition

                         by Tony Gaddis and Godfrey Muganda
Chapter Topics
  Chapter 10 discusses the following main topics:
        –    Introduction to Wrapper Classes
        –    Character Testing and Conversion with the Character Class
        –    More String Methods
        –    The StringBuilder Class
        –    The StringTokenizer Class
        –    Wrapper Classes for the Numeric Data Types
        –    Focus on Problem Solving: The TestScoreReader
             Class



© 2012 Pearson Education, Inc. All rights reserved.                      10-2
Introduction to Wrapper Classes
 • Java provides 8 primitive data types.
 • They are called “primitive” because they are not created from
   classes.
 • Java provides wrapper classes for all of the primitive data types.
 • A wrapper class is a class that is “wrapped around” a primitive
   data type.
 • The wrapper classes are part of java.lang so to use them,
   there is no import statement required.




© 2012 Pearson Education, Inc. All rights reserved.                     10-3
Wrapper Classes
 • Wrapper classes allow you to create objects to
   represent a primitive.
 • Wrapper classes are immutable, which means that
   once you create an object, you cannot change the
   object’s value.
 • To get the value stored in an object you must call a
   method.
 • Wrapper classes provide static methods that are very
   useful


© 2012 Pearson Education, Inc. All rights reserved.       10-4
Character Testing and Conversion With The
 Character Class

  • The Character class allows a char data type to
    be wrapped in an object.
  • The Character class provides methods that
    allow easy testing, processing, and conversion of
    character data.




© 2012 Pearson Education, Inc. All rights reserved.     10-5
The Character Class
                      Method                                            Description
      boolean isDigit(                                Returns true if the argument passed into ch is a
                  char ch)                            digit from 0 through 9. Otherwise returns false.
      boolean isLetter(                               Returns true if the argument passed into ch is an
                  char ch)                            alphabetic letter. Otherwise returns false.
                                                      Returns true if the character passed into ch
      boolean isLetterOrDigit(
                   char ch)                           contains a digit (0 through 9) or an alphabetic
                                                      letter. Otherwise returns false.
      boolean isLowerCase(                            Returns true if the argument passed into ch is a
                   char ch)                           lowercase letter. Otherwise returns false.
      boolean isUpperCase(                            Returns true if the argument passed into ch is an
                   char ch)                           uppercase letter. Otherwise returns false.
      boolean isSpaceChar(                            Returns true if the argument passed into ch is a
                   char ch)                           space character. Otherwise returns false.

© 2012 Pearson Education, Inc. All rights reserved.                                                       10-6
Character Testing and Conversion
 With The Character Class
 • Example:
       CharacterTest.java
       CustomerNumber.java
 • The Character class provides two methods that will
   change the case of a character.
             Method                                   Description
             char toLowerCase(                        Returns the lowercase equivalent of the
                         char ch)                     argument passed to ch.
             char toUpperCase(                        Returns the uppercase equivalent of the
                         char ch)                     argument passed to ch.

          See example: CircleArea.java
© 2012 Pearson Education, Inc. All rights reserved.                                             10-7
Substrings
 • The String class provides several methods that search for a
   string inside of a string.
 • A substring is a string that is part of another string.
 • Some of the substring searching methods provided by the
   String class:

       boolean startsWith(String str)
       boolean endsWith(String str)
       boolean regionMatches(int start, String str, int start2,
                             int n)
       boolean regionMatches(boolean ignoreCase, int start,
                             String str, int start2, int n)



© 2012 Pearson Education, Inc. All rights reserved.               10-8
Searching Strings
 • The startsWith method determines whether a
   string begins with a specified substring.

       String str = "Four score and seven years ago";
       if (str.startsWith("Four"))
         System.out.println("The string starts with Four.");
       else
         System.out.println("The string does not start with Four.");

 • str.startsWith("Four") returns true because
   str does begin with “Four”.
 • startsWith is a case sensitive comparison.

© 2012 Pearson Education, Inc. All rights reserved.                    10-9
Searching Strings
 • The endsWith method determines whether a string
   ends with a specified substring.

       String str = "Four score and seven years ago";
       if (str.endsWith("ago"))
         System.out.println("The string ends with ago.");
       else
         System.out.println("The string does not end with ago.");

 • The endsWith method also performs a case sensitive
   comparison.
 • Example: PersonSearch.java

© 2012 Pearson Education, Inc. All rights reserved.                 10-10
Searching Strings
 • The String class provides methods that will if
   specified regions of two strings match.
       – regionMatches(int start, String str, int start2,
         int n)
              • returns true if the specified regions match or false if they
                don’t
              • Case sensitive comparison

       – regionMatches(boolean ignoreCase, int start,
         String str, int start2, int n)
              • If ignoreCase is true, it performs case insensitive
                comparison

© 2012 Pearson Education, Inc. All rights reserved.                            10-11
Searching Strings
 • The String class also provides methods that will
   locate the position of a substring.
    – indexOf
              • returns the first location of a substring or character in the
                calling String Object.
       – lastIndexOf
              • returns the last location of a substring or character in the
                calling String Object.




© 2012 Pearson Education, Inc. All rights reserved.                             10-12
Searching Strings
       String str = "Four score and seven years ago";
       int first, last;
       first = str.indexOf('r');
       last = str.lastIndexOf('r');
       System.out.println("The letter r first appears at "
                           + "position " + first);
       System.out.println("The letter r last appears at "
                          + "position " + last);


       String str = "and a one and a two and a three";
       int position;
       System.out.println("The word and appears at the "
                          + "following locations.");

       position = str.indexOf("and");
       while (position != -1)
       {
         System.out.println(position);
         position = str.indexOf("and", position + 1);
       }

© 2012 Pearson Education, Inc. All rights reserved.          10-13
String Methods For Getting Character Or
  Substring Location             See Table 10-4 on
                                                      page 616.




© 2012 Pearson Education, Inc. All rights reserved.               10-14
String Methods For Getting Character Or
  Substring Location             See Table 10-4 on
                                                      page 616.




© 2012 Pearson Education, Inc. All rights reserved.               10-15
Extracting Substrings
 • The String class provides methods to extract
   substrings in a String object.
       – The substring method returns a substring beginning
         at a start location and an optional ending location.
       String fullName = "Cynthia Susan Smith";
       String lastName = fullName.substring(14);
       System.out.println("The full name is "
                          + fullName);
       System.out.println("The last name is "
                          + lastName);




© 2012 Pearson Education, Inc. All rights reserved.             10-16
Extracting Substrings

    The fullName variable holds
    the address of a String object.

                 Address                                “Cynthia Susan Smith”



      The lastName variable holds
      the address of a String object.

                 Address                              “Smith”




© 2012 Pearson Education, Inc. All rights reserved.                             10-17
Extracting Characters to Arrays
 • The String class provides methods to extract
   substrings in a String object and store them in
   char arrays.
       – getChars
              • Stores a substring in a char array
       – toCharArray
              • Returns the String object’s contents in an array of char values.
 • Example: StringAnalyzer.java



© 2012 Pearson Education, Inc. All rights reserved.                                10-18
Returning Modified Strings
 • The String class provides methods to return
   modified String objects.
       – concat
              • Returns a String object that is the concatenation of two String
                objects.

       – replace
              • Returns a String object with all occurrences of one character
                being replaced by another character.

       – trim
              • Returns a String object with all leading and trailing whitespace
                characters removed.

© 2012 Pearson Education, Inc. All rights reserved.                                10-19
The valueOf Methods
 • The String class provides several overloaded valueOf
   methods.
 • They return a String object representation of
    – a primitive value or
    – a character array.

       String.valueOf(true) will return "true".
       String.valueOf(5.0) will return "5.0".
       String.valueOf(‘C’) will return "C".




© 2012 Pearson Education, Inc. All rights reserved.       10-20
The valueOf Methods
             boolean b = true;
             char [] letters = { 'a', 'b', 'c', 'd', 'e' };
             double d = 2.4981567;
             int i = 7;
             System.out.println(String.valueOf(b));
             System.out.println(String.valueOf(letters));
             System.out.println(String.valueOf(letters, 1, 3));
             System.out.println(String.valueOf(d));
             System.out.println(String.valueOf(i));

      • Produces the following output:
             true
             abcde
             bcd
             2.4981567
             7

© 2012 Pearson Education, Inc. All rights reserved.               10-21
The StringBuilder Class
 • The StringBuilder class is similar to the String class.
 • However, you may change the contents of StringBuilder
   objects.
        –   You can change specific characters,
        –   insert characters,
        –   delete characters, and
        –   perform other operations.
 • A StringBuilder object will grow or shrink in size, as
   needed, to accommodate the changes.




© 2012 Pearson Education, Inc. All rights reserved.          10-22
StringBuilder Constructors
  • StringBuilder()
        – This constructor gives the object enough storage space to hold 16
          characters.

  • StringBuilder(int length)
        – This constructor gives the object enough storage space to hold
          length characters.

  • StringBuilder(String str)
        – This constructor initializes the object with the string in str.
        – The object will have at least enough storage space to hold the string in
          str.



© 2012 Pearson Education, Inc. All rights reserved.                                  10-23
Other StringBuilder Methods
 • The String and StringBuilder also have common
   methods:

       char charAt(int position)
       void getChars(int start, int end,
                char[] array, int arrayStart)
       int indexOf(String str)
       int indexOf(String str, int start)
       int lastIndexOf(String str)
       int lastIndexOf(String str, int start)
       int length()
       String substring(int start)
       String substring(int start, int end)

© 2012 Pearson Education, Inc. All rights reserved.   10-24
Appending to a StringBuilder Object
 • The StringBuilder class has several overloaded versions
   of a method named append.
 • They append a string representation of their argument to the
   calling object’s current contents.
 • The general form of the append method is:
       object.append(item);

       – where object is an instance of the StringBuilder
         class and item is:
              • a primitive literal or variable.
              • a char array, or
              • a String literal or object.


© 2012 Pearson Education, Inc. All rights reserved.               10-25
Appending to a StringBuilder Object
 • After the append method is called, a string representation of
   item will be appended to object’s contents.

       StringBuilder str = new StringBuilder();

       str.append("We sold ");
       str.append(12);
       str.append(" doughnuts for $");
       str.append(15.95);

       System.out.println(str);


 • This code will produce the following output:
       We sold 12 doughnuts for $15.95

© 2012 Pearson Education, Inc. All rights reserved.                10-26
Appending to a StringBuilder Object
  • The StringBuilder class also has several overloaded
    versions of a method named insert
  • These methods accept two arguments:
        – an int that specifies the position to begin insertion, and
        – the value to be inserted.
  • The value to be inserted may be
        – a primitive literal or variable.
        – a char array, or
        – a String literal or object.




© 2012 Pearson Education, Inc. All rights reserved.                    10-27
Appending to a StringBuilder Object
 • The general form of a typical call to the insert method.
       – object.insert(start, item);
              • where object is an instance of the StringBuilder
                class, start is the insertion location, and item is:
                     – a primitive literal or variable.
                     – a char array, or
                     – a String literal or object.
 • Example:
      Telephone.java
      TelephoneTester.java



© 2012 Pearson Education, Inc. All rights reserved.                    10-28
Replacing a Substring in a StringBuilder Object

 • The StringBuilder class has a replace method that
   replaces a specified substring with a string.
 • The general form of a call to the method:
    – object.replace(start, end, str);
              • start is an int that specifies the starting position of a substring in
                the calling object, and
              • end is an int that specifies the ending position of the substring.
                (The starting position is included in the substring, but the ending
                position is not.)
              • The str parameter is a String object.
       – After the method executes, the substring will be replaced
         with str.


© 2012 Pearson Education, Inc. All rights reserved.                                  10-29
Replacing a Substring in a StringBuilder Object

 • The replace method in this code replaces the word
   “Chicago” with “New York”.

       StringBuilder str = new StringBuilder(
                "We moved from Chicago to Atlanta.");
       str.replace(14, 21, "New York");
       System.out.println(str);


 • The code will produce the following output:
       We moved from New York to Atlanta.



© 2012 Pearson Education, Inc. All rights reserved.     10-30
Other StringBuilder Methods
 • The StringBuilder class also provides methods to set and
   delete characters in an object.
       StringBuilder str = new StringBuilder(
                              "I ate 100 blueberries!");
       // Display the StringBuilder object.
       System.out.println(str);
       // Delete the '0'.
       str.deleteCharAt(8);
       // Delete "blue".
       str.delete(9, 13);
       // Display the StringBuilder object.
       System.out.println(str);
       // Change the '1' to '5'
       str.setCharAt(6, '5');
       // Display the StringBuilder object.
       System.out.println(str);

© 2012 Pearson Education, Inc. All rights reserved.           10-31
The StringTokenizer Class
 • The StringTokenizer class breaks a string down
   into its components, which are called tokens.
 • Tokens are a series of words or other items of data
   separated by spaces or other characters.
       – "peach raspberry strawberry vanilla"
 • This string contains the following four tokens: peach,
   raspberry, strawberry, and vanilla.




© 2012 Pearson Education, Inc. All rights reserved.         10-32
The StringTokenizer Class
 • The character that separates tokens is a delimiter.
       – "17;92;81;12;46;5"
 • This string contains the following tokens: 17, 92, 81,
   12, 46, and 5 that are delimited by semi-colons.
 • Some programming problems require you to process a
   string that contains a list of items.




© 2012 Pearson Education, Inc. All rights reserved.         10-33
The StringTokenizer Class
      • For example,
              • a date:                               • an operating system pathname,
                     •"4-2-2010"                          •/home/rsullivan/data

      • The process of breaking a string into tokens is known as
        tokenizing.
      • The Java API provides the StringTokenizer class
        that allows you to tokenize a string.
      • The following import statement must be used in any class
        that uses it:
             – import java.util.StringTokenizer;




© 2012 Pearson Education, Inc. All rights reserved.                                     10-34
StringTokenizer Constructors
  Constructor                                         Description
                                                      The string to be tokenized is passed into str.
  StringTokenizer(
     String str)                                      Whitespace characters (space, tab, and newline)
                                                      are used as delimiters.

  StringTokenizer(                                    The string to be tokenized is passed into str.
     String str,                                      The characters in delimiters will be used as
     String delimiters)                               delimiters.

                                                      The string to be tokenized is passed into str.
  StringTokenizer(                                    The characters in delimiters will be used as
     String str,                                      delimiters. If the returnDelimiters parameter is
     String delimiters,                               set to true, the delimiters will be included as
     Boolean returnDelimeters)                        tokens. If this parameter is set to false, the
                                                      delimiters will not be included as tokens.



© 2012 Pearson Education, Inc. All rights reserved.                                                    10-35
Creating StringTokenizer Objects
   • To create a StringTokenizer object with the default
     delimiters (whitespace characters):
          StringTokenizer strTokenizer =
              new StringTokenizer("2 4 6 8");

   • To create a StringTokenizer object with the hyphen
     character as a delimiter:
          StringTokenizer strTokenizer =
              new StringTokenizer("8-14-2004", "-");

   • To create a StringTokenizer object with the hyphen
     character as a delimiter, returning hyphen characters as
     tokens as well:
          StringTokenizer strTokenizer =
              new StringTokenizer("8-14-2004", "-", true);

© 2012 Pearson Education, Inc. All rights reserved.             10-36
StringTokenizer Methods
 • The StringTokenizer class provides:
       – countTokens
              • Count the remaining tokens in the string.
       – hasMoreTokens
              • Are there any more tokens to extract?
       – nextToken
              • Returns the next token in the string.
              • Throws a NoSuchElementException if there are no more
                tokens in the string.




© 2012 Pearson Education, Inc. All rights reserved.                    10-37
Extracting Tokens
 • Loops are often used to extract tokens from a string.
       StringTokenizer strTokenizer =
            new StringTokenizer("One Two Three");
       while (strTokenizer.hasMoreTokens())
       {
         System.out.println(strTokenizer.nextToken());
       }
 • This code will produce the following output:
       One
       Two
       Three
 • Examples: DateComponent.java, DateTester.java

© 2012 Pearson Education, Inc. All rights reserved.        10-38
Multiple Delimiters
  • The default delimiters for the StringTokenizer class
    are the whitespace characters.
        – nrtbf
  • Other multiple characters can be used as delimiters in the
    same string.
     – joe@gaddisbooks.com
  • This string uses two delimiters: @ and .
  • If non-default delimiters are used
        – The String class trim method should be used on
          user input strings to avoid having whitespace become
          part of the last token.
© 2012 Pearson Education, Inc. All rights reserved.              10-39
Multiple Delimiters
  • To extract the tokens from this string we must specify both
    characters as delimiters to the constructor.

        StringTokenizer strTokenizer =
        new StringTokenizer("joe@gaddisbooks.com", "@.");
        while (strTokenizer.hasMoreTokens())
        {
        System.out.println(strTokenizer.nextToken());
        }

  • This code will produce the following output:
        joe
        gaddisbooks
        com


© 2012 Pearson Education, Inc. All rights reserved.               10-40
The String Class split Method
  • Tokenizes a String object and returns an array of String
    objects
  • Each array element is one token.
        // Create a String to tokenize.
        String str = "one two three four";
        // Get the tokens from the string.
        String[] tokens = str.split(" ");
        // Display each token.
        for (String s : tokens)
           System.out.println(s);

  • This code will produce the following output:
        one
        two
        three
        four


© 2012 Pearson Education, Inc. All rights reserved.            10-41
Numeric Data Type Wrappers
 • Java provides wrapper classes for all of the
   primitive data types.
 • The numeric primitive wrapper classes are:
                                    Wrapper            Numeric Primitive
                                     Class             Type It Applies To
                                  Byte                byte
                                  Double              double
                                  Float               float
                                  Integer             int
                                  Long                long
                                  Short               short


© 2012 Pearson Education, Inc. All rights reserved.                         10-42
Creating a Wrapper Object
 • To create objects from these wrapper classes, you can
   pass a value to the constructor:
       Integer number = new Integer(7);


 • You can also assign a primitive value to a wrapper
   class object:
      Integer number;
      number = 7;




© 2012 Pearson Education, Inc. All rights reserved.        10-43
The Parse Methods
   • Recall from Chapter 2, we converted String input (from
     JOptionPane) into numbers. Any String containing a
     number, such as “127.89”, can be converted to a numeric
     data type.

   • Each of the numeric wrapper classes has a static method
     that converts a string to a number.
      – The Integer class has a method that converts a
        String to an int,
      – The Double class has a method that converts a
        String to a double,
      – etc.

   • These methods are known as parse methods because their
     names begin with the word “parse.”
© 2012 Pearson Education, Inc. All rights reserved.            10-44
The Parse Methods
       // Store 1 in bVar.
       byte bVar = Byte.parseByte("1");
       // Store 2599 in iVar.
       int iVar = Integer.parseInt("2599");
       // Store 10 in sVar.
       short sVar = Short.parseShort("10");
       // Store 15908 in lVar.
       long lVar = Long.parseLong("15908");
       // Store 12.3 in fVar.
       float fVar = Float.parseFloat("12.3");
       // Store 7945.6 in dVar.
       double dVar = Double.parseDouble("7945.6");

 • The parse methods all throw a NumberFormatException
   if the String object does not represent a numeric value.


© 2012 Pearson Education, Inc. All rights reserved.           10-45
The toString Methods
 • Each of the numeric wrapper classes has a static
   toString method that converts a number to a string.
 • The method accepts the number as its argument and
   returns a string representation of that number.

       int i = 12;
       double d = 14.95;
       String str1 = Integer.toString(i);
       String str2 = Double.toString(d);




© 2012 Pearson Education, Inc. All rights reserved.   10-46
The toBinaryString, toHexString, and
 toOctalString Methods

  • The Integer and Long classes have three
    additional methods:
        – toBinaryString, toHexString, and
          toOctalString
        int number = 14;
        System.out.println(Integer.toBinaryString(number));
        System.out.println(Integer.toHexString(number));
        System.out.println(Integer.toOctalString(number));
  • This code will produce the following output:
        1110
        e
        16



© 2012 Pearson Education, Inc. All rights reserved.           10-47
MIN_VALUE and MAX_VALUE
 • The numeric wrapper classes each have a set of static final
   variables
       – MIN_VALUE and
       – MAX_VALUE.

 • These variables hold the minimum and maximum values for a
   particular data type.
       System.out.println("The minimum value for an "
                          + "int is "
                          + Integer.MIN_VALUE);
       System.out.println("The maximum value for an "
                          + "int is "
                          + Integer.MAX_VALUE);


© 2012 Pearson Education, Inc. All rights reserved.              10-48
Autoboxing and Unboxing
 • You can declare a wrapper class variable and assign a value:
       Integer number;
       number = 7;

 • You nay think this is an error, but because number is a wrapper
   class variable, autoboxing occurs.

 • Unboxing does the opposite with wrapper class variables:
       Integer myInt = 5;                             // Autoboxes the value 5
       int primitiveNumber;
       primitiveNumber = myInt;                       // unboxing




© 2012 Pearson Education, Inc. All rights reserved.                              10-49
Autoboxing and Unboxing
  • You rarely need to declare numeric wrapper class objects,
    but they can be useful when you need to work with
    primitives in a context where primitives are not permitted
  • Recall the ArrayList class, which works only with
    objects.

        ArrayList<int> list =
              new ArrayList<int>();     // Error!
        ArrayList<Integer> list =
              new ArrayList<Integer>(); // OK!

  • Autoboxing and unboxing allow you to conveniently use
    ArrayLists with primitives.


© 2012 Pearson Education, Inc. All rights reserved.              10-50
Problem Solving
 • Dr. Harrison keeps student scores in an Excel file.
   This can be exported as a comma separated text file.
   Each student’s data will be on one line. We want to
   write a Java program that will find the average for
   each student. (The number of students changes each
   year.)
 • Solution: TestScoreReader.java, TestAverages.java




© 2012 Pearson Education, Inc. All rights reserved.       10-51

Weitere ähnliche Inhalte

Was ist angesagt?

Learning sets of rules, Sequential Learning Algorithm,FOIL
Learning sets of rules, Sequential Learning Algorithm,FOILLearning sets of rules, Sequential Learning Algorithm,FOIL
Learning sets of rules, Sequential Learning Algorithm,FOILPavithra Thippanaik
 
Wrapper class (130240116056)
Wrapper class (130240116056)Wrapper class (130240116056)
Wrapper class (130240116056)Akshay soni
 
Learning Morphological Rules for Amharic Verbs Using Inductive Logic Programming
Learning Morphological Rules for Amharic Verbs Using Inductive Logic ProgrammingLearning Morphological Rules for Amharic Verbs Using Inductive Logic Programming
Learning Morphological Rules for Amharic Verbs Using Inductive Logic ProgrammingGuy De Pauw
 
Object Oriented Principles
Object Oriented PrinciplesObject Oriented Principles
Object Oriented PrinciplesSujit Majety
 
Farhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd YearFarhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd Yeardezyneecole
 
10. Introduction to Datastructure
10. Introduction to Datastructure10. Introduction to Datastructure
10. Introduction to DatastructureNilesh Dalvi
 
Methods and constructors
Methods and constructorsMethods and constructors
Methods and constructorsRavi_Kant_Sahu
 
L9 wrapper classes
L9 wrapper classesL9 wrapper classes
L9 wrapper classesteach4uin
 

Was ist angesagt? (20)

Md03 - part3
Md03 - part3Md03 - part3
Md03 - part3
 
LectureNotes-04-DSA
LectureNotes-04-DSALectureNotes-04-DSA
LectureNotes-04-DSA
 
8. String
8. String8. String
8. String
 
Array
ArrayArray
Array
 
Lect5
Lect5Lect5
Lect5
 
Chap5java5th
Chap5java5thChap5java5th
Chap5java5th
 
Learning sets of rules, Sequential Learning Algorithm,FOIL
Learning sets of rules, Sequential Learning Algorithm,FOILLearning sets of rules, Sequential Learning Algorithm,FOIL
Learning sets of rules, Sequential Learning Algorithm,FOIL
 
Wrapper class (130240116056)
Wrapper class (130240116056)Wrapper class (130240116056)
Wrapper class (130240116056)
 
7 Methods and Functional Programming
7  Methods and Functional Programming7  Methods and Functional Programming
7 Methods and Functional Programming
 
wrapper classes
wrapper classeswrapper classes
wrapper classes
 
Learning Morphological Rules for Amharic Verbs Using Inductive Logic Programming
Learning Morphological Rules for Amharic Verbs Using Inductive Logic ProgrammingLearning Morphological Rules for Amharic Verbs Using Inductive Logic Programming
Learning Morphological Rules for Amharic Verbs Using Inductive Logic Programming
 
Object Oriented Principles
Object Oriented PrinciplesObject Oriented Principles
Object Oriented Principles
 
Farhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd YearFarhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd Year
 
Keywords and classes
Keywords and classesKeywords and classes
Keywords and classes
 
10. Introduction to Datastructure
10. Introduction to Datastructure10. Introduction to Datastructure
10. Introduction to Datastructure
 
Methods and constructors
Methods and constructorsMethods and constructors
Methods and constructors
 
Chap4java5th
Chap4java5thChap4java5th
Chap4java5th
 
Overview of Java
Overview of Java Overview of Java
Overview of Java
 
L9 wrapper classes
L9 wrapper classesL9 wrapper classes
L9 wrapper classes
 
Java tutorial part 3
Java tutorial part 3Java tutorial part 3
Java tutorial part 3
 

Ähnlich wie Cso gaddis java_chapter10

Eo gaddis java_chapter_08_5e
Eo gaddis java_chapter_08_5eEo gaddis java_chapter_08_5e
Eo gaddis java_chapter_08_5eGina Bullock
 
OCA Java SE 8 Exam Chapter 3 Core Java APIs
OCA Java SE 8 Exam Chapter 3 Core Java APIsOCA Java SE 8 Exam Chapter 3 Core Java APIs
OCA Java SE 8 Exam Chapter 3 Core Java APIsİbrahim Kürce
 
String handling(string class)
String handling(string class)String handling(string class)
String handling(string class)Ravi_Kant_Sahu
 
LiangChapter4 Unicode , ASCII Code .ppt
LiangChapter4 Unicode , ASCII Code  .pptLiangChapter4 Unicode , ASCII Code  .ppt
LiangChapter4 Unicode , ASCII Code .pptzainiiqbal761
 
Module 6 - String Manipulation.pdf
Module 6 - String Manipulation.pdfModule 6 - String Manipulation.pdf
Module 6 - String Manipulation.pdfMegMeg17
 
String handling session 5
String handling session 5String handling session 5
String handling session 5Raja Sekhar
 
Java string handling
Java string handlingJava string handling
Java string handlingSalman Khan
 
In the given example only one object will be created. Firstly JVM will not fi...
In the given example only one object will be created. Firstly JVM will not fi...In the given example only one object will be created. Firstly JVM will not fi...
In the given example only one object will be created. Firstly JVM will not fi...Indu32
 
Chapter 9 - Characters and Strings
Chapter 9 - Characters and StringsChapter 9 - Characters and Strings
Chapter 9 - Characters and StringsEduardo Bergavera
 
stringstringbuilderstringbuffer-190830060142.pptx
stringstringbuilderstringbuffer-190830060142.pptxstringstringbuilderstringbuffer-190830060142.pptx
stringstringbuilderstringbuffer-190830060142.pptxssuser99ca78
 
javastringexample problems using string class
javastringexample problems using string classjavastringexample problems using string class
javastringexample problems using string classfedcoordinator
 

Ähnlich wie Cso gaddis java_chapter10 (20)

Eo gaddis java_chapter_08_5e
Eo gaddis java_chapter_08_5eEo gaddis java_chapter_08_5e
Eo gaddis java_chapter_08_5e
 
11-ch04-3-strings.pdf
11-ch04-3-strings.pdf11-ch04-3-strings.pdf
11-ch04-3-strings.pdf
 
OCA Java SE 8 Exam Chapter 3 Core Java APIs
OCA Java SE 8 Exam Chapter 3 Core Java APIsOCA Java SE 8 Exam Chapter 3 Core Java APIs
OCA Java SE 8 Exam Chapter 3 Core Java APIs
 
String handling(string class)
String handling(string class)String handling(string class)
String handling(string class)
 
Strings in java
Strings in javaStrings in java
Strings in java
 
LiangChapter4 Unicode , ASCII Code .ppt
LiangChapter4 Unicode , ASCII Code  .pptLiangChapter4 Unicode , ASCII Code  .ppt
LiangChapter4 Unicode , ASCII Code .ppt
 
Module 6 - String Manipulation.pdf
Module 6 - String Manipulation.pdfModule 6 - String Manipulation.pdf
Module 6 - String Manipulation.pdf
 
String handling session 5
String handling session 5String handling session 5
String handling session 5
 
Java string handling
Java string handlingJava string handling
Java string handling
 
In the given example only one object will be created. Firstly JVM will not fi...
In the given example only one object will be created. Firstly JVM will not fi...In the given example only one object will be created. Firstly JVM will not fi...
In the given example only one object will be created. Firstly JVM will not fi...
 
M C6java7
M C6java7M C6java7
M C6java7
 
Python ppt_118.pptx
Python ppt_118.pptxPython ppt_118.pptx
Python ppt_118.pptx
 
Chapter 9 - Characters and Strings
Chapter 9 - Characters and StringsChapter 9 - Characters and Strings
Chapter 9 - Characters and Strings
 
String.pptx
String.pptxString.pptx
String.pptx
 
arrays.pptx
arrays.pptxarrays.pptx
arrays.pptx
 
stringstringbuilderstringbuffer-190830060142.pptx
stringstringbuilderstringbuffer-190830060142.pptxstringstringbuilderstringbuffer-190830060142.pptx
stringstringbuilderstringbuffer-190830060142.pptx
 
Java String Handling
Java String HandlingJava String Handling
Java String Handling
 
String, string builder, string buffer
String, string builder, string bufferString, string builder, string buffer
String, string builder, string buffer
 
Lecture 7
Lecture 7Lecture 7
Lecture 7
 
javastringexample problems using string class
javastringexample problems using string classjavastringexample problems using string class
javastringexample problems using string class
 

Mehr von mlrbrown

Cso gaddis java_chapter15
Cso gaddis java_chapter15Cso gaddis java_chapter15
Cso gaddis java_chapter15mlrbrown
 
Cso gaddis java_chapter14
Cso gaddis java_chapter14Cso gaddis java_chapter14
Cso gaddis java_chapter14mlrbrown
 
Cso gaddis java_chapter13
Cso gaddis java_chapter13Cso gaddis java_chapter13
Cso gaddis java_chapter13mlrbrown
 
Cso gaddis java_chapter12
Cso gaddis java_chapter12Cso gaddis java_chapter12
Cso gaddis java_chapter12mlrbrown
 
Cso gaddis java_chapter11
Cso gaddis java_chapter11Cso gaddis java_chapter11
Cso gaddis java_chapter11mlrbrown
 
Cso gaddis java_chapter9ppt
Cso gaddis java_chapter9pptCso gaddis java_chapter9ppt
Cso gaddis java_chapter9pptmlrbrown
 
Cso gaddis java_chapter8
Cso gaddis java_chapter8Cso gaddis java_chapter8
Cso gaddis java_chapter8mlrbrown
 
Cso gaddis java_chapter7
Cso gaddis java_chapter7Cso gaddis java_chapter7
Cso gaddis java_chapter7mlrbrown
 
Cso gaddis java_chapter6
Cso gaddis java_chapter6Cso gaddis java_chapter6
Cso gaddis java_chapter6mlrbrown
 
Cso gaddis java_chapter5
Cso gaddis java_chapter5Cso gaddis java_chapter5
Cso gaddis java_chapter5mlrbrown
 
Cso gaddis java_chapter4
Cso gaddis java_chapter4Cso gaddis java_chapter4
Cso gaddis java_chapter4mlrbrown
 
Cso gaddis java_chapter3
Cso gaddis java_chapter3Cso gaddis java_chapter3
Cso gaddis java_chapter3mlrbrown
 
Cso gaddis java_chapter2
Cso gaddis java_chapter2Cso gaddis java_chapter2
Cso gaddis java_chapter2mlrbrown
 
Cso gaddis java_chapter1
Cso gaddis java_chapter1Cso gaddis java_chapter1
Cso gaddis java_chapter1mlrbrown
 
Networking Chapter 16
Networking Chapter 16Networking Chapter 16
Networking Chapter 16mlrbrown
 
Networking Chapter 15
Networking Chapter 15Networking Chapter 15
Networking Chapter 15mlrbrown
 
Networking Chapter 14
Networking Chapter 14Networking Chapter 14
Networking Chapter 14mlrbrown
 
Networking Chapter 13
Networking Chapter 13Networking Chapter 13
Networking Chapter 13mlrbrown
 
Networking Chapter 12
Networking Chapter 12Networking Chapter 12
Networking Chapter 12mlrbrown
 
Networking Chapter 11
Networking Chapter 11Networking Chapter 11
Networking Chapter 11mlrbrown
 

Mehr von mlrbrown (20)

Cso gaddis java_chapter15
Cso gaddis java_chapter15Cso gaddis java_chapter15
Cso gaddis java_chapter15
 
Cso gaddis java_chapter14
Cso gaddis java_chapter14Cso gaddis java_chapter14
Cso gaddis java_chapter14
 
Cso gaddis java_chapter13
Cso gaddis java_chapter13Cso gaddis java_chapter13
Cso gaddis java_chapter13
 
Cso gaddis java_chapter12
Cso gaddis java_chapter12Cso gaddis java_chapter12
Cso gaddis java_chapter12
 
Cso gaddis java_chapter11
Cso gaddis java_chapter11Cso gaddis java_chapter11
Cso gaddis java_chapter11
 
Cso gaddis java_chapter9ppt
Cso gaddis java_chapter9pptCso gaddis java_chapter9ppt
Cso gaddis java_chapter9ppt
 
Cso gaddis java_chapter8
Cso gaddis java_chapter8Cso gaddis java_chapter8
Cso gaddis java_chapter8
 
Cso gaddis java_chapter7
Cso gaddis java_chapter7Cso gaddis java_chapter7
Cso gaddis java_chapter7
 
Cso gaddis java_chapter6
Cso gaddis java_chapter6Cso gaddis java_chapter6
Cso gaddis java_chapter6
 
Cso gaddis java_chapter5
Cso gaddis java_chapter5Cso gaddis java_chapter5
Cso gaddis java_chapter5
 
Cso gaddis java_chapter4
Cso gaddis java_chapter4Cso gaddis java_chapter4
Cso gaddis java_chapter4
 
Cso gaddis java_chapter3
Cso gaddis java_chapter3Cso gaddis java_chapter3
Cso gaddis java_chapter3
 
Cso gaddis java_chapter2
Cso gaddis java_chapter2Cso gaddis java_chapter2
Cso gaddis java_chapter2
 
Cso gaddis java_chapter1
Cso gaddis java_chapter1Cso gaddis java_chapter1
Cso gaddis java_chapter1
 
Networking Chapter 16
Networking Chapter 16Networking Chapter 16
Networking Chapter 16
 
Networking Chapter 15
Networking Chapter 15Networking Chapter 15
Networking Chapter 15
 
Networking Chapter 14
Networking Chapter 14Networking Chapter 14
Networking Chapter 14
 
Networking Chapter 13
Networking Chapter 13Networking Chapter 13
Networking Chapter 13
 
Networking Chapter 12
Networking Chapter 12Networking Chapter 12
Networking Chapter 12
 
Networking Chapter 11
Networking Chapter 11Networking Chapter 11
Networking Chapter 11
 

Kürzlich hochgeladen

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Kürzlich hochgeladen (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Cso gaddis java_chapter10

  • 1. © 2012 Pearson Education, Inc. All rights reserved. Chapter 10: Text Processing and More about Wrapper Classes Starting Out with Java: From Control Structures through Data Structures Second Edition by Tony Gaddis and Godfrey Muganda
  • 2. Chapter Topics Chapter 10 discusses the following main topics: – Introduction to Wrapper Classes – Character Testing and Conversion with the Character Class – More String Methods – The StringBuilder Class – The StringTokenizer Class – Wrapper Classes for the Numeric Data Types – Focus on Problem Solving: The TestScoreReader Class © 2012 Pearson Education, Inc. All rights reserved. 10-2
  • 3. Introduction to Wrapper Classes • Java provides 8 primitive data types. • They are called “primitive” because they are not created from classes. • Java provides wrapper classes for all of the primitive data types. • A wrapper class is a class that is “wrapped around” a primitive data type. • The wrapper classes are part of java.lang so to use them, there is no import statement required. © 2012 Pearson Education, Inc. All rights reserved. 10-3
  • 4. Wrapper Classes • Wrapper classes allow you to create objects to represent a primitive. • Wrapper classes are immutable, which means that once you create an object, you cannot change the object’s value. • To get the value stored in an object you must call a method. • Wrapper classes provide static methods that are very useful © 2012 Pearson Education, Inc. All rights reserved. 10-4
  • 5. Character Testing and Conversion With The Character Class • The Character class allows a char data type to be wrapped in an object. • The Character class provides methods that allow easy testing, processing, and conversion of character data. © 2012 Pearson Education, Inc. All rights reserved. 10-5
  • 6. The Character Class Method Description boolean isDigit( Returns true if the argument passed into ch is a char ch) digit from 0 through 9. Otherwise returns false. boolean isLetter( Returns true if the argument passed into ch is an char ch) alphabetic letter. Otherwise returns false. Returns true if the character passed into ch boolean isLetterOrDigit( char ch) contains a digit (0 through 9) or an alphabetic letter. Otherwise returns false. boolean isLowerCase( Returns true if the argument passed into ch is a char ch) lowercase letter. Otherwise returns false. boolean isUpperCase( Returns true if the argument passed into ch is an char ch) uppercase letter. Otherwise returns false. boolean isSpaceChar( Returns true if the argument passed into ch is a char ch) space character. Otherwise returns false. © 2012 Pearson Education, Inc. All rights reserved. 10-6
  • 7. Character Testing and Conversion With The Character Class • Example: CharacterTest.java CustomerNumber.java • The Character class provides two methods that will change the case of a character. Method Description char toLowerCase( Returns the lowercase equivalent of the char ch) argument passed to ch. char toUpperCase( Returns the uppercase equivalent of the char ch) argument passed to ch. See example: CircleArea.java © 2012 Pearson Education, Inc. All rights reserved. 10-7
  • 8. Substrings • The String class provides several methods that search for a string inside of a string. • A substring is a string that is part of another string. • Some of the substring searching methods provided by the String class: boolean startsWith(String str) boolean endsWith(String str) boolean regionMatches(int start, String str, int start2, int n) boolean regionMatches(boolean ignoreCase, int start, String str, int start2, int n) © 2012 Pearson Education, Inc. All rights reserved. 10-8
  • 9. Searching Strings • The startsWith method determines whether a string begins with a specified substring. String str = "Four score and seven years ago"; if (str.startsWith("Four")) System.out.println("The string starts with Four."); else System.out.println("The string does not start with Four."); • str.startsWith("Four") returns true because str does begin with “Four”. • startsWith is a case sensitive comparison. © 2012 Pearson Education, Inc. All rights reserved. 10-9
  • 10. Searching Strings • The endsWith method determines whether a string ends with a specified substring. String str = "Four score and seven years ago"; if (str.endsWith("ago")) System.out.println("The string ends with ago."); else System.out.println("The string does not end with ago."); • The endsWith method also performs a case sensitive comparison. • Example: PersonSearch.java © 2012 Pearson Education, Inc. All rights reserved. 10-10
  • 11. Searching Strings • The String class provides methods that will if specified regions of two strings match. – regionMatches(int start, String str, int start2, int n) • returns true if the specified regions match or false if they don’t • Case sensitive comparison – regionMatches(boolean ignoreCase, int start, String str, int start2, int n) • If ignoreCase is true, it performs case insensitive comparison © 2012 Pearson Education, Inc. All rights reserved. 10-11
  • 12. Searching Strings • The String class also provides methods that will locate the position of a substring. – indexOf • returns the first location of a substring or character in the calling String Object. – lastIndexOf • returns the last location of a substring or character in the calling String Object. © 2012 Pearson Education, Inc. All rights reserved. 10-12
  • 13. Searching Strings String str = "Four score and seven years ago"; int first, last; first = str.indexOf('r'); last = str.lastIndexOf('r'); System.out.println("The letter r first appears at " + "position " + first); System.out.println("The letter r last appears at " + "position " + last); String str = "and a one and a two and a three"; int position; System.out.println("The word and appears at the " + "following locations."); position = str.indexOf("and"); while (position != -1) { System.out.println(position); position = str.indexOf("and", position + 1); } © 2012 Pearson Education, Inc. All rights reserved. 10-13
  • 14. String Methods For Getting Character Or Substring Location See Table 10-4 on page 616. © 2012 Pearson Education, Inc. All rights reserved. 10-14
  • 15. String Methods For Getting Character Or Substring Location See Table 10-4 on page 616. © 2012 Pearson Education, Inc. All rights reserved. 10-15
  • 16. Extracting Substrings • The String class provides methods to extract substrings in a String object. – The substring method returns a substring beginning at a start location and an optional ending location. String fullName = "Cynthia Susan Smith"; String lastName = fullName.substring(14); System.out.println("The full name is " + fullName); System.out.println("The last name is " + lastName); © 2012 Pearson Education, Inc. All rights reserved. 10-16
  • 17. Extracting Substrings The fullName variable holds the address of a String object. Address “Cynthia Susan Smith” The lastName variable holds the address of a String object. Address “Smith” © 2012 Pearson Education, Inc. All rights reserved. 10-17
  • 18. Extracting Characters to Arrays • The String class provides methods to extract substrings in a String object and store them in char arrays. – getChars • Stores a substring in a char array – toCharArray • Returns the String object’s contents in an array of char values. • Example: StringAnalyzer.java © 2012 Pearson Education, Inc. All rights reserved. 10-18
  • 19. Returning Modified Strings • The String class provides methods to return modified String objects. – concat • Returns a String object that is the concatenation of two String objects. – replace • Returns a String object with all occurrences of one character being replaced by another character. – trim • Returns a String object with all leading and trailing whitespace characters removed. © 2012 Pearson Education, Inc. All rights reserved. 10-19
  • 20. The valueOf Methods • The String class provides several overloaded valueOf methods. • They return a String object representation of – a primitive value or – a character array. String.valueOf(true) will return "true". String.valueOf(5.0) will return "5.0". String.valueOf(‘C’) will return "C". © 2012 Pearson Education, Inc. All rights reserved. 10-20
  • 21. The valueOf Methods boolean b = true; char [] letters = { 'a', 'b', 'c', 'd', 'e' }; double d = 2.4981567; int i = 7; System.out.println(String.valueOf(b)); System.out.println(String.valueOf(letters)); System.out.println(String.valueOf(letters, 1, 3)); System.out.println(String.valueOf(d)); System.out.println(String.valueOf(i)); • Produces the following output: true abcde bcd 2.4981567 7 © 2012 Pearson Education, Inc. All rights reserved. 10-21
  • 22. The StringBuilder Class • The StringBuilder class is similar to the String class. • However, you may change the contents of StringBuilder objects. – You can change specific characters, – insert characters, – delete characters, and – perform other operations. • A StringBuilder object will grow or shrink in size, as needed, to accommodate the changes. © 2012 Pearson Education, Inc. All rights reserved. 10-22
  • 23. StringBuilder Constructors • StringBuilder() – This constructor gives the object enough storage space to hold 16 characters. • StringBuilder(int length) – This constructor gives the object enough storage space to hold length characters. • StringBuilder(String str) – This constructor initializes the object with the string in str. – The object will have at least enough storage space to hold the string in str. © 2012 Pearson Education, Inc. All rights reserved. 10-23
  • 24. Other StringBuilder Methods • The String and StringBuilder also have common methods: char charAt(int position) void getChars(int start, int end, char[] array, int arrayStart) int indexOf(String str) int indexOf(String str, int start) int lastIndexOf(String str) int lastIndexOf(String str, int start) int length() String substring(int start) String substring(int start, int end) © 2012 Pearson Education, Inc. All rights reserved. 10-24
  • 25. Appending to a StringBuilder Object • The StringBuilder class has several overloaded versions of a method named append. • They append a string representation of their argument to the calling object’s current contents. • The general form of the append method is: object.append(item); – where object is an instance of the StringBuilder class and item is: • a primitive literal or variable. • a char array, or • a String literal or object. © 2012 Pearson Education, Inc. All rights reserved. 10-25
  • 26. Appending to a StringBuilder Object • After the append method is called, a string representation of item will be appended to object’s contents. StringBuilder str = new StringBuilder(); str.append("We sold "); str.append(12); str.append(" doughnuts for $"); str.append(15.95); System.out.println(str); • This code will produce the following output: We sold 12 doughnuts for $15.95 © 2012 Pearson Education, Inc. All rights reserved. 10-26
  • 27. Appending to a StringBuilder Object • The StringBuilder class also has several overloaded versions of a method named insert • These methods accept two arguments: – an int that specifies the position to begin insertion, and – the value to be inserted. • The value to be inserted may be – a primitive literal or variable. – a char array, or – a String literal or object. © 2012 Pearson Education, Inc. All rights reserved. 10-27
  • 28. Appending to a StringBuilder Object • The general form of a typical call to the insert method. – object.insert(start, item); • where object is an instance of the StringBuilder class, start is the insertion location, and item is: – a primitive literal or variable. – a char array, or – a String literal or object. • Example: Telephone.java TelephoneTester.java © 2012 Pearson Education, Inc. All rights reserved. 10-28
  • 29. Replacing a Substring in a StringBuilder Object • The StringBuilder class has a replace method that replaces a specified substring with a string. • The general form of a call to the method: – object.replace(start, end, str); • start is an int that specifies the starting position of a substring in the calling object, and • end is an int that specifies the ending position of the substring. (The starting position is included in the substring, but the ending position is not.) • The str parameter is a String object. – After the method executes, the substring will be replaced with str. © 2012 Pearson Education, Inc. All rights reserved. 10-29
  • 30. Replacing a Substring in a StringBuilder Object • The replace method in this code replaces the word “Chicago” with “New York”. StringBuilder str = new StringBuilder( "We moved from Chicago to Atlanta."); str.replace(14, 21, "New York"); System.out.println(str); • The code will produce the following output: We moved from New York to Atlanta. © 2012 Pearson Education, Inc. All rights reserved. 10-30
  • 31. Other StringBuilder Methods • The StringBuilder class also provides methods to set and delete characters in an object. StringBuilder str = new StringBuilder( "I ate 100 blueberries!"); // Display the StringBuilder object. System.out.println(str); // Delete the '0'. str.deleteCharAt(8); // Delete "blue". str.delete(9, 13); // Display the StringBuilder object. System.out.println(str); // Change the '1' to '5' str.setCharAt(6, '5'); // Display the StringBuilder object. System.out.println(str); © 2012 Pearson Education, Inc. All rights reserved. 10-31
  • 32. The StringTokenizer Class • The StringTokenizer class breaks a string down into its components, which are called tokens. • Tokens are a series of words or other items of data separated by spaces or other characters. – "peach raspberry strawberry vanilla" • This string contains the following four tokens: peach, raspberry, strawberry, and vanilla. © 2012 Pearson Education, Inc. All rights reserved. 10-32
  • 33. The StringTokenizer Class • The character that separates tokens is a delimiter. – "17;92;81;12;46;5" • This string contains the following tokens: 17, 92, 81, 12, 46, and 5 that are delimited by semi-colons. • Some programming problems require you to process a string that contains a list of items. © 2012 Pearson Education, Inc. All rights reserved. 10-33
  • 34. The StringTokenizer Class • For example, • a date: • an operating system pathname, •"4-2-2010" •/home/rsullivan/data • The process of breaking a string into tokens is known as tokenizing. • The Java API provides the StringTokenizer class that allows you to tokenize a string. • The following import statement must be used in any class that uses it: – import java.util.StringTokenizer; © 2012 Pearson Education, Inc. All rights reserved. 10-34
  • 35. StringTokenizer Constructors Constructor Description The string to be tokenized is passed into str. StringTokenizer( String str) Whitespace characters (space, tab, and newline) are used as delimiters. StringTokenizer( The string to be tokenized is passed into str. String str, The characters in delimiters will be used as String delimiters) delimiters. The string to be tokenized is passed into str. StringTokenizer( The characters in delimiters will be used as String str, delimiters. If the returnDelimiters parameter is String delimiters, set to true, the delimiters will be included as Boolean returnDelimeters) tokens. If this parameter is set to false, the delimiters will not be included as tokens. © 2012 Pearson Education, Inc. All rights reserved. 10-35
  • 36. Creating StringTokenizer Objects • To create a StringTokenizer object with the default delimiters (whitespace characters): StringTokenizer strTokenizer = new StringTokenizer("2 4 6 8"); • To create a StringTokenizer object with the hyphen character as a delimiter: StringTokenizer strTokenizer = new StringTokenizer("8-14-2004", "-"); • To create a StringTokenizer object with the hyphen character as a delimiter, returning hyphen characters as tokens as well: StringTokenizer strTokenizer = new StringTokenizer("8-14-2004", "-", true); © 2012 Pearson Education, Inc. All rights reserved. 10-36
  • 37. StringTokenizer Methods • The StringTokenizer class provides: – countTokens • Count the remaining tokens in the string. – hasMoreTokens • Are there any more tokens to extract? – nextToken • Returns the next token in the string. • Throws a NoSuchElementException if there are no more tokens in the string. © 2012 Pearson Education, Inc. All rights reserved. 10-37
  • 38. Extracting Tokens • Loops are often used to extract tokens from a string. StringTokenizer strTokenizer = new StringTokenizer("One Two Three"); while (strTokenizer.hasMoreTokens()) { System.out.println(strTokenizer.nextToken()); } • This code will produce the following output: One Two Three • Examples: DateComponent.java, DateTester.java © 2012 Pearson Education, Inc. All rights reserved. 10-38
  • 39. Multiple Delimiters • The default delimiters for the StringTokenizer class are the whitespace characters. – nrtbf • Other multiple characters can be used as delimiters in the same string. – joe@gaddisbooks.com • This string uses two delimiters: @ and . • If non-default delimiters are used – The String class trim method should be used on user input strings to avoid having whitespace become part of the last token. © 2012 Pearson Education, Inc. All rights reserved. 10-39
  • 40. Multiple Delimiters • To extract the tokens from this string we must specify both characters as delimiters to the constructor. StringTokenizer strTokenizer = new StringTokenizer("joe@gaddisbooks.com", "@."); while (strTokenizer.hasMoreTokens()) { System.out.println(strTokenizer.nextToken()); } • This code will produce the following output: joe gaddisbooks com © 2012 Pearson Education, Inc. All rights reserved. 10-40
  • 41. The String Class split Method • Tokenizes a String object and returns an array of String objects • Each array element is one token. // Create a String to tokenize. String str = "one two three four"; // Get the tokens from the string. String[] tokens = str.split(" "); // Display each token. for (String s : tokens) System.out.println(s); • This code will produce the following output: one two three four © 2012 Pearson Education, Inc. All rights reserved. 10-41
  • 42. Numeric Data Type Wrappers • Java provides wrapper classes for all of the primitive data types. • The numeric primitive wrapper classes are: Wrapper Numeric Primitive Class Type It Applies To Byte byte Double double Float float Integer int Long long Short short © 2012 Pearson Education, Inc. All rights reserved. 10-42
  • 43. Creating a Wrapper Object • To create objects from these wrapper classes, you can pass a value to the constructor: Integer number = new Integer(7); • You can also assign a primitive value to a wrapper class object: Integer number; number = 7; © 2012 Pearson Education, Inc. All rights reserved. 10-43
  • 44. The Parse Methods • Recall from Chapter 2, we converted String input (from JOptionPane) into numbers. Any String containing a number, such as “127.89”, can be converted to a numeric data type. • Each of the numeric wrapper classes has a static method that converts a string to a number. – The Integer class has a method that converts a String to an int, – The Double class has a method that converts a String to a double, – etc. • These methods are known as parse methods because their names begin with the word “parse.” © 2012 Pearson Education, Inc. All rights reserved. 10-44
  • 45. The Parse Methods // Store 1 in bVar. byte bVar = Byte.parseByte("1"); // Store 2599 in iVar. int iVar = Integer.parseInt("2599"); // Store 10 in sVar. short sVar = Short.parseShort("10"); // Store 15908 in lVar. long lVar = Long.parseLong("15908"); // Store 12.3 in fVar. float fVar = Float.parseFloat("12.3"); // Store 7945.6 in dVar. double dVar = Double.parseDouble("7945.6"); • The parse methods all throw a NumberFormatException if the String object does not represent a numeric value. © 2012 Pearson Education, Inc. All rights reserved. 10-45
  • 46. The toString Methods • Each of the numeric wrapper classes has a static toString method that converts a number to a string. • The method accepts the number as its argument and returns a string representation of that number. int i = 12; double d = 14.95; String str1 = Integer.toString(i); String str2 = Double.toString(d); © 2012 Pearson Education, Inc. All rights reserved. 10-46
  • 47. The toBinaryString, toHexString, and toOctalString Methods • The Integer and Long classes have three additional methods: – toBinaryString, toHexString, and toOctalString int number = 14; System.out.println(Integer.toBinaryString(number)); System.out.println(Integer.toHexString(number)); System.out.println(Integer.toOctalString(number)); • This code will produce the following output: 1110 e 16 © 2012 Pearson Education, Inc. All rights reserved. 10-47
  • 48. MIN_VALUE and MAX_VALUE • The numeric wrapper classes each have a set of static final variables – MIN_VALUE and – MAX_VALUE. • These variables hold the minimum and maximum values for a particular data type. System.out.println("The minimum value for an " + "int is " + Integer.MIN_VALUE); System.out.println("The maximum value for an " + "int is " + Integer.MAX_VALUE); © 2012 Pearson Education, Inc. All rights reserved. 10-48
  • 49. Autoboxing and Unboxing • You can declare a wrapper class variable and assign a value: Integer number; number = 7; • You nay think this is an error, but because number is a wrapper class variable, autoboxing occurs. • Unboxing does the opposite with wrapper class variables: Integer myInt = 5; // Autoboxes the value 5 int primitiveNumber; primitiveNumber = myInt; // unboxing © 2012 Pearson Education, Inc. All rights reserved. 10-49
  • 50. Autoboxing and Unboxing • You rarely need to declare numeric wrapper class objects, but they can be useful when you need to work with primitives in a context where primitives are not permitted • Recall the ArrayList class, which works only with objects. ArrayList<int> list = new ArrayList<int>(); // Error! ArrayList<Integer> list = new ArrayList<Integer>(); // OK! • Autoboxing and unboxing allow you to conveniently use ArrayLists with primitives. © 2012 Pearson Education, Inc. All rights reserved. 10-50
  • 51. Problem Solving • Dr. Harrison keeps student scores in an Excel file. This can be exported as a comma separated text file. Each student’s data will be on one line. We want to write a Java program that will find the average for each student. (The number of students changes each year.) • Solution: TestScoreReader.java, TestAverages.java © 2012 Pearson Education, Inc. All rights reserved. 10-51